You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by tr...@locus.apache.org on 2000/08/21 21:09:04 UTC

cvs commit: apache-2.0/src/modules/standard mod_rewrite.h mod_rewrite.c

trawick     00/08/21 12:09:04

  Modified:    src      CHANGES
               src/modules/standard mod_rewrite.h mod_rewrite.c
  Log:
  Fix some bad calls to ap_log_rerror() in mod_rewrite.  In some places,
  errno was passed as the APR error code.  In other places, 0 was passed.
  
  Revision  Changes    Path
  1.210     +3 -0      apache-2.0/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/CHANGES,v
  retrieving revision 1.209
  retrieving revision 1.210
  diff -u -r1.209 -r1.210
  --- CHANGES	2000/08/20 03:21:51	1.209
  +++ CHANGES	2000/08/21 19:08:59	1.210
  @@ -1,5 +1,8 @@
   Changes with Apache 2.0a7
   
  +  *) Fix some bad calls to ap_log_rerror() in mod_rewrite. 
  +     [Jeff Trawick]
  +
     *) Update PCRE to version 3.2.  [Ryan Bloom]
   
     *) Change the way buckets' destroy functions are called so that
  
  
  
  1.17      +3 -3      apache-2.0/src/modules/standard/mod_rewrite.h
  
  Index: mod_rewrite.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/modules/standard/mod_rewrite.h,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- mod_rewrite.h	2000/08/03 03:09:32	1.16
  +++ mod_rewrite.h	2000/08/21 19:09:01	1.17
  @@ -438,9 +438,9 @@
   
       /* program map support */
   static void  run_rewritemap_programs(server_rec *s, apr_pool_t *p);
  -static int   rewritemap_program_child(apr_pool_t *p, const char *progname,
  -                                    apr_file_t **fpout, apr_file_t **fpin,
  -                                    apr_file_t **fperr);
  +static apr_status_t rewritemap_program_child(apr_pool_t *p, const char *progname,
  +                                             apr_file_t **fpout, apr_file_t **fpin,
  +                                             apr_file_t **fperr);
   
       /* env variable support */
   static void  expand_variables_inbuffer(request_rec *r, char *buf, int buf_len);
  
  
  
  1.40      +35 -24    apache-2.0/src/modules/standard/mod_rewrite.c
  
  Index: mod_rewrite.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/modules/standard/mod_rewrite.c,v
  retrieving revision 1.39
  retrieving revision 1.40
  diff -u -r1.39 -r1.40
  --- mod_rewrite.c	2000/08/12 02:31:38	1.39
  +++ mod_rewrite.c	2000/08/21 19:09:01	1.40
  @@ -799,6 +799,8 @@
       /*  arg2: the output string
        *  replace the $<N> by \<n> which is needed by the currently
        *  used Regular Expression library
  +     *
  +     * TODO: Is this still required for PCRE?  If not, does it *work* with PCRE?
        */
       newrule->output = apr_pstrdup(cmd->pool, a2);
   
  @@ -1021,9 +1023,17 @@
   
   static void init_child(apr_pool_t *p, server_rec *s)
   {
  +    apr_status_t rv;
   
       if (lockname != NULL && *(lockname) != '\0')
  -        apr_child_init_lock (&rewrite_mapr_lock, lockname, p);
  +    {
  +        rv = apr_child_init_lock (&rewrite_mapr_lock, lockname, p);
  +        if (rv != APR_SUCCESS) {
  +            ap_log_error(APLOG_MARK, APLOG_CRIT, rv, s,
  +                         "mod_rewrite: could not init rewrite_mapr_lock "
  +                         "in child");
  +        }
  +    }
   
       /* create the lookup cache */
       cachep = init_cache(p);
  @@ -2756,6 +2766,7 @@
       rewritemap_entry *s;
       char *value;
       apr_finfo_t st;
  +    apr_status_t rv;
       int i;
   
       /* get map configuration */
  @@ -2769,8 +2780,8 @@
           s = &entries[i];
           if (strcmp(s->name, name) == 0) {
               if (s->type == MAPTYPE_TXT) {
  -                if (apr_stat(&st, s->checkfile, r->pool) != APR_SUCCESS) {
  -                    ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
  +                if ((rv = apr_stat(&st, s->checkfile, r->pool)) != APR_SUCCESS) {
  +                    ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r,
                                    "mod_rewrite: can't access text RewriteMap "
                                    "file %s", s->checkfile);
                       rewritelog(r, 1, "can't open RewriteMap file, "
  @@ -2806,8 +2817,8 @@
               }
               else if (s->type == MAPTYPE_DBM) {
   #ifndef NO_DBM_REWRITEMAP
  -                if (apr_stat(&st, s->checkfile, r->pool) != APR_SUCCESS) {
  -                    ap_log_rerror(APLOG_MARK, APLOG_ERR, errno, r,
  +                if ((rv = apr_stat(&st, s->checkfile, r->pool)) != APR_SUCCESS) {
  +                    ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r,
                                    "mod_rewrite: can't access DBM RewriteMap "
                                    "file %s", s->checkfile);
                       rewritelog(r, 1, "can't open DBM RewriteMap file, "
  @@ -2868,8 +2879,8 @@
                   }
               }
               else if (s->type == MAPTYPE_RND) {
  -                if (apr_stat(&st, s->checkfile, r->pool) == -1) {
  -                    ap_log_rerror(APLOG_MARK, APLOG_ERR, errno, r,
  +                if ((rv = apr_stat(&st, s->checkfile, r->pool)) != APR_SUCCESS) {
  +                    ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r,
                                    "mod_rewrite: can't access text RewriteMap "
                                    "file %s", s->checkfile);
                       rewritelog(r, 1, "can't open RewriteMap file, "
  @@ -3199,7 +3210,7 @@
   
       if (*conf->rewritelogfile == '|') {
           if ((pl = ap_open_piped_log(p, conf->rewritelogfile+1)) == NULL) {
  -            ap_log_error(APLOG_MARK, APLOG_ERR, 0, s, 
  +            ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_NOERRNO, 0, s, 
                            "mod_rewrite: could not open reliable pipe "
                            "to RewriteLog filter %s", conf->rewritelogfile+1);
               exit(1);
  @@ -3209,7 +3220,7 @@
       else if (*conf->rewritelogfile != '\0') {
           rc = apr_open(&conf->rewritelogfp, fname, rewritelog_flags, rewritelog_mode, p);
           if (rc != APR_SUCCESS)  {
  -            ap_log_error(APLOG_MARK, APLOG_ERR, 0, s, 
  +            ap_log_error(APLOG_MARK, APLOG_ERR, rc, s, 
                            "mod_rewrite: could not open RewriteLog "
                            "file %s", fname);
               exit(1);
  @@ -3391,7 +3402,7 @@
       rewritemap_entry *entries;
       rewritemap_entry *map;
       int i;
  -    int rc;
  +    apr_status_t rc;
   
       conf = ap_get_module_config(s->module_config, &rewrite_module);
   
  @@ -3420,9 +3431,9 @@
           rc = rewritemap_program_child(p, map->datafile,
                                        &fpout, &fpin, &fperr);
           if (rc != APR_SUCCESS || fpin == NULL || fpout == NULL) {
  -            ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
  +            ap_log_error(APLOG_MARK, APLOG_ERR, rc, s,
                            "mod_rewrite: could not fork child for "
  -                         "RewriteMap process. %d", rc);
  +                         "RewriteMap process");
               exit(1);
           }
           map->fpin  = fpin;
  @@ -3433,11 +3444,11 @@
   }
   
   /* child process code */
  -static int rewritemap_program_child(apr_pool_t *p, const char *progname,
  -                                    apr_file_t **fpout, apr_file_t **fpin,
  -                                    apr_file_t **fperr)
  +static apr_status_t rewritemap_program_child(apr_pool_t *p, const char *progname,
  +                                             apr_file_t **fpout, apr_file_t **fpin,
  +                                             apr_file_t **fperr)
   {
  -    int rc = -1;
  +    apr_status_t rc;
       apr_procattr_t *procattr;
       apr_proc_t *procnew;
   
  @@ -3446,15 +3457,15 @@
   #endif
   
       
  -    if ((apr_createprocattr_init(&procattr, p)           != APR_SUCCESS) ||
  -        (apr_setprocattr_io(procattr, APR_FULL_BLOCK,
  -                                     APR_FULL_NONBLOCK,
  -                                     APR_FULL_NONBLOCK) != APR_SUCCESS) ||
  -        (apr_setprocattr_dir(procattr, ap_make_dirstr_parent(p, progname))
  -                                                        != APR_SUCCESS) ||
  -        (apr_setprocattr_cmdtype(procattr, APR_PROGRAM)  != APR_SUCCESS)) {
  +    if (((rc = apr_createprocattr_init(&procattr, p)) != APR_SUCCESS) ||
  +        ((rc = apr_setprocattr_io(procattr, APR_FULL_BLOCK,
  +                                  APR_FULL_NONBLOCK,
  +                                  APR_FULL_NONBLOCK)) != APR_SUCCESS) ||
  +        ((rc = apr_setprocattr_dir(procattr, 
  +                                   ap_make_dirstr_parent(p, progname)))
  +         != APR_SUCCESS) ||
  +        ((rc = apr_setprocattr_cmdtype(procattr, APR_PROGRAM)) != APR_SUCCESS)) {
           /* Something bad happened, give up and go away. */
  -        rc = -1;
       }
       else {
           procnew = apr_pcalloc(p, sizeof(*procnew));