httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jwool...@apache.org
Subject cvs commit: httpd-2.0/modules/mappers mod_rewrite.c
Date Wed, 29 May 2002 03:27:01 GMT
jwoolley    02/05/28 20:27:01

  Modified:    .        CHANGES
               modules/mappers mod_rewrite.c
  Log:
  Fix RewriteMap prg:'s that have command-line args.
  
  PR: 8464
  Submitted by: James Tait <JTait@wyrddreams.demon.co.uk>
  
  Revision  Changes    Path
  1.795     +3 -0      httpd-2.0/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/CHANGES,v
  retrieving revision 1.794
  retrieving revision 1.795
  diff -u -d -u -r1.794 -r1.795
  --- CHANGES	28 May 2002 23:38:31 -0000	1.794
  +++ CHANGES	29 May 2002 03:27:01 -0000	1.795
  @@ -1,5 +1,8 @@
   Changes with Apache 2.0.37
   
  +  *) Allow RewriteMap prg:'s to take command-line arguments.  PR 8464.
  +     [James Tait <JTait@wyrddreams.demon.co.uk>]
  +
     *) Correctly return 413 when an invalid chunk size is given on
        input.  Also modify ap_discard_request_body to not do anything
        on sub-requests or when the connection will be dropped.
  
  
  
  1.117     +8 -4      httpd-2.0/modules/mappers/mod_rewrite.c
  
  Index: mod_rewrite.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/modules/mappers/mod_rewrite.c,v
  retrieving revision 1.116
  retrieving revision 1.117
  diff -u -d -u -r1.116 -r1.117
  --- mod_rewrite.c	20 May 2002 18:33:41 -0000	1.116
  +++ mod_rewrite.c	29 May 2002 03:27:01 -0000	1.117
  @@ -456,7 +456,7 @@
       else if (strncmp(a2, "prg:", 4) == 0) {
           newmap->type = MAPTYPE_PRG;
           newmap->datafile = a2+4;
  -        newmap->checkfile = a2+4;
  +        newmap->checkfile = NULL;
       }
       else if (strncmp(a2, "int:", 4) == 0) {
           newmap->type      = MAPTYPE_INT;
  @@ -481,7 +481,7 @@
           && (apr_stat(&st, newmap->checkfile, APR_FINFO_MIN, 
                        cmd->pool) != APR_SUCCESS)) {
           return apr_pstrcat(cmd->pool,
  -                          "RewriteMap: map file or program not found:",
  +                          "RewriteMap: map file not found:",
                             newmap->checkfile, NULL);
       }
   
  @@ -3424,20 +3424,24 @@
       apr_status_t rc;
       apr_procattr_t *procattr;
       apr_proc_t *procnew;
  +    char **argv;
  +
  +    rc = apr_tokenize_to_argv(progname, &argv, p);
   
       if (((rc = apr_procattr_create(&procattr, p)) != APR_SUCCESS) ||
           ((rc = apr_procattr_io_set(procattr, APR_FULL_BLOCK,
                                     APR_FULL_NONBLOCK,
                                     APR_FULL_NONBLOCK)) != APR_SUCCESS) ||
           ((rc = apr_procattr_dir_set(procattr, 
  -                                   ap_make_dirstr_parent(p, progname)))
  +                                   ap_make_dirstr_parent(p, argv[0])))
            != APR_SUCCESS) ||
           ((rc = apr_procattr_cmdtype_set(procattr, APR_PROGRAM)) != APR_SUCCESS)) {
           /* Something bad happened, give up and go away. */
       }
       else {
           procnew = apr_pcalloc(p, sizeof(*procnew));
  -        rc = apr_proc_create(procnew, progname, NULL, NULL, procattr, p);
  +        rc = apr_proc_create(procnew, argv[0], (const char **)argv, NULL,
  +                             procattr, p);
       
           if (rc == APR_SUCCESS) {
               apr_pool_note_subprocess(p, procnew, APR_KILL_AFTER_TIMEOUT);
  
  
  

Mime
View raw message