]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
exit(1) should never occur in any module. Stay away from it.
authorAndré Malo <nd@apache.org>
Thu, 31 Jul 2003 23:43:37 +0000 (23:43 +0000)
committerAndré Malo <nd@apache.org>
Thu, 31 Jul 2003 23:43:37 +0000 (23:43 +0000)
Reviewed by: Jeff Trawick, Bill Stoddard

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/APACHE_2_0_BRANCH@100884 13f79535-47bb-0310-9956-ffa450edef68

STATUS
modules/mappers/mod_rewrite.c
modules/mappers/mod_rewrite.h

diff --git a/STATUS b/STATUS
index ea1c41ff4ba056ac83e5ab3ce9cc9246136be3ab..d42260c41c3c59be99b7c5dd537f52e181c37fee 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -1,5 +1,5 @@
 APACHE 2.0 STATUS:                                              -*-text-*-
-Last modified at [$Date: 2003/07/31 23:15:12 $]
+Last modified at [$Date: 2003/07/31 23:43:36 $]
 
 Release:
 
@@ -278,11 +278,6 @@ PATCHES TO PORT FROM 2.1
         modules/mappers/mod_rewrite.c: r1.162
       +1: nd, trawick (?)
 
-    * mod_rewrite: don't exit(1) if the logfile could not be opened. Return
-      internal server error instead to shutdown cleanly.
-        modules/mappers/mod_rewrite.c: r1.191
-      +1: nd, trawick, stoddard
-
     * Install config.nice to make minor version upgrades easier.
         Makefile.in: r1.136
       +1: slive, trawick, erikabele
index 2d57a8ccf89dd4e33439aa3a66852988f47ffe75..81589aec6032b259df9b49cdcc1790a902ab69bd 100644 (file)
@@ -1040,7 +1040,10 @@ static int post_config(apr_pool_t *p,
      * - open the RewriteMap prg:xxx programs
      */
     for (; s; s = s->next) {
-        open_rewritelog(s, p);
+        if (!open_rewritelog(s, p)) {
+            return HTTP_INTERNAL_SERVER_ERROR;
+        }
+
         if (!first_time) {
             if (run_rewritemap_programs(s, p) != APR_SUCCESS) {
                 return HTTP_INTERNAL_SERVER_ERROR;
@@ -3400,7 +3403,7 @@ static char *select_random_value_part(request_rec *r, char *value)
 */
 
 
-static void open_rewritelog(server_rec *s, apr_pool_t *p)
+static int open_rewritelog(server_rec *s, apr_pool_t *p)
 {
     rewrite_server_conf *conf;
     const char *fname;
@@ -3412,14 +3415,12 @@ static void open_rewritelog(server_rec *s, apr_pool_t *p)
 
     conf = ap_get_module_config(s->module_config, &rewrite_module);
 
-    if (conf->rewritelogfile == NULL) {
-        return;
-    }
-    if (*(conf->rewritelogfile) == '\0') {
-        return;
-    }
-    if (conf->rewritelogfp != NULL) {
-        return; /* virtual log shared w/ main server */
+    /* - no logfile configured
+     * - logfilename empty
+     * - virtual log shared w/ main server
+     */
+    if (!conf->rewritelogfile || !*conf->rewritelogfile || conf->rewritelogfp) {
+        return 1;
     }
 
     if (*conf->rewritelogfile == '|') {
@@ -3427,7 +3428,7 @@ static void open_rewritelog(server_rec *s, apr_pool_t *p)
             ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
                          "mod_rewrite: could not open reliable pipe "
                          "to RewriteLog filter %s", conf->rewritelogfile+1);
-            exit(1);
+            return 0;
         }
         conf->rewritelogfp = ap_piped_log_write_fd(pl);
     }
@@ -3437,7 +3438,7 @@ static void open_rewritelog(server_rec *s, apr_pool_t *p)
             ap_log_error(APLOG_MARK, APLOG_ERR, APR_EBADPATH, s,
                          "mod_rewrite: Invalid RewriteLog "
                          "path %s", conf->rewritelogfile);
-            exit(1);
+            return 0;
         }
         if ((rc = apr_file_open(&conf->rewritelogfp, fname,
                                 rewritelog_flags, rewritelog_mode, p))
@@ -3445,10 +3446,11 @@ static void open_rewritelog(server_rec *s, apr_pool_t *p)
             ap_log_error(APLOG_MARK, APLOG_ERR, rc, s,
                          "mod_rewrite: could not open RewriteLog "
                          "file %s", fname);
-            exit(1);
+            return 0;
         }
     }
-    return;
+
+    return 1;
 }
 
 static void rewritelog(request_rec *r, int level, const char *text, ...)
index 2a46b6199b712582c6fb60b8a90ce7fc8e8b1f91..b45c5f03b222752c19bb915ed2d3de72f90a9848 100644 (file)
@@ -440,7 +440,7 @@ static void  rewrite_rand_init(void);
 static int   rewrite_rand(int l, int h);
 
     /* rewriting logfile support */
-static void  open_rewritelog(server_rec *s, apr_pool_t *p);
+static int   open_rewritelog(server_rec *s, apr_pool_t *p);
 static void  rewritelog(request_rec *r, int level, const char *text, ...)
                         __attribute__((format(printf,3,4)));
 static char *current_logtime(request_rec *r);