]> granicus.if.org Git - apache/commitdiff
change open_logs hook to return a value, allowing you to flag a error
authorIan Holsman <ianh@apache.org>
Sat, 24 Nov 2001 00:08:30 +0000 (00:08 +0000)
committerIan Holsman <ianh@apache.org>
Sat, 24 Nov 2001 00:08:30 +0000 (00:08 +0000)
while opening logs

Obtained from: Doug MacEachern

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

CHANGES
include/http_config.h
modules/experimental/mod_example.c
modules/loggers/mod_log_config.c
server/config.c
server/core.c
server/main.c

diff --git a/CHANGES b/CHANGES
index f9397fe846534c8df5103b2e9e583ef562e9874f..66e52dff454d42e3f8d54a1e6740abff09f0dc77 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,8 @@
 Changes with Apache 2.0.29-dev
 
+  *) Change open_logs hook to return a value, allowing you
+     to flag a error while opening logs
+     [Ian Holsman, Doug MacEachern]
 
   *) Change post_config hook to return a value, allowing you
      to flag a error post config
index 9f24aa41266f07d018ea47d0bee1864c2bbd5bb6..22b901e282dc1dbe8ef86b0a2c1f2ce7c9fe0fdb 100644 (file)
@@ -979,7 +979,7 @@ AP_DECLARE_HOOK(void,pre_config,(apr_pool_t *pconf,apr_pool_t *plog,apr_pool_t *
  * @param plog The logging streams pool
  * @param ptemp The temporary pool
  * @param s The list of server_recs
- * @return OK or 
+ * @return OK or DECLINED on success anything else is a error
  */
 AP_DECLARE_HOOK(int,post_config,(apr_pool_t *pconf,apr_pool_t *plog,apr_pool_t *ptemp,server_rec *s))
 
@@ -989,8 +989,9 @@ AP_DECLARE_HOOK(int,post_config,(apr_pool_t *pconf,apr_pool_t *plog,apr_pool_t *
  * @param plog The logging streams pool
  * @param ptemp The temporary pool
  * @param s The list of server_recs
+ * @return OK or DECLINED on success anything else is a error
  */
-AP_DECLARE_HOOK(void,open_logs,(apr_pool_t *pconf,apr_pool_t *plog,apr_pool_t *ptemp,server_rec *s))
+AP_DECLARE_HOOK(int,open_logs,(apr_pool_t *pconf,apr_pool_t *plog,apr_pool_t *ptemp,server_rec *s))
 
 /**
  * Run the child_init functions for each module
index 663652891b2b40c0d091c3360581e45245f708e2..8e0b78ae4bef4fc9677f0f5fbe2054a6719a9a2d 100644 (file)
@@ -882,13 +882,14 @@ static int x_post_config(apr_pool_t *pconf, apr_pool_t *plog,
  * server will still call any remaining modules with an handler for this
  * phase.
  */
-static void x_open_logs(apr_pool_t *pconf, apr_pool_t *plog,
+static int x_open_logs(apr_pool_t *pconf, apr_pool_t *plog,
                         apr_pool_t *ptemp, server_rec *s)
 {
     /*
      * Log the call and exit.
      */
     trace_add(s, NULL, NULL, "x_open_logs()");
+    return OK;
 }
 
 /*
index 3ce3de027b78f8fec12e9d5fa2301cd5254ca876..2213b6c8525b38ce7c05ebf3b2e8941bbd0aea4b 100644 (file)
@@ -1149,7 +1149,7 @@ static apr_status_t flush_all_logs(void *data)
 }
 #endif
 
-static void init_config_log(apr_pool_t *pc, apr_pool_t *p, apr_pool_t *pt, server_rec *s)
+static int init_config_log(apr_pool_t *pc, apr_pool_t *p, apr_pool_t *pt, server_rec *s)
 {
     /* First, do "physical" server, which gets default log fd and format
      * for the virtual servers, if they don't override...
@@ -1162,6 +1162,7 @@ static void init_config_log(apr_pool_t *pc, apr_pool_t *p, apr_pool_t *pt, serve
     for (s = s->next; s; s = s->next) {
         open_multi_logs(s, p);
     }
+    return OK;
 }
 
 static void init_child(apr_pool_t *p, server_rec *s)
index 587e4522610fcbcee7633eabbac1d86622bb81ed..bfd120154de9fc47bd9c33059535bb521dfec479 100644 (file)
@@ -176,9 +176,9 @@ AP_DECLARE(int) ap_run_post_config (apr_pool_t *pconf,
 }
  */
 
-AP_IMPLEMENT_HOOK_VOID(open_logs,
+AP_IMPLEMENT_HOOK_RUN_ALL(int, open_logs,
                       (apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *ptemp, 
-                        server_rec *s),(pconf,plog,ptemp,s))
+                        server_rec *s),(pconf,plog,ptemp,s),OK,DECLINED)
 AP_IMPLEMENT_HOOK_VOID(child_init,
                        (apr_pool_t *pchild, server_rec *s),(pchild,s))
 
index dcdeeff7e518622f7ee071db03a30c930f3e5935..a6b90f9576c26363d7d82e2160e0eefa994e0caf 100644 (file)
@@ -3264,9 +3264,10 @@ static int core_post_config(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *pte
     return OK;
 }
 
-static void core_open_logs(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s)
+static int core_open_logs(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s)
 {
     ap_open_logs(s, pconf);
+    return OK;  
 }
 
 static void core_insert_filter(request_rec *r)
index 9e279419ecca92d1908c17fd82014bdc2181ec55..7bbee310d74a576bd9a796a005424dc552b97c91 100644 (file)
@@ -396,7 +396,10 @@ int main(int argc, const char * const argv[])
        destroy_and_exit_process(process, 0);
     }
     apr_pool_clear(plog);
-    ap_run_open_logs(pconf, plog, ptemp, server_conf);
+    if ( ap_run_open_logs(pconf, plog, ptemp, server_conf) != OK) {
+        ap_log_error(APLOG_MARK, APLOG_STARTUP |APLOG_ERR| APLOG_NOERRNO, 0, NULL, "Unable to open logs\n");
+        destroy_and_exit_process(process, 1);
+    }
     if ( ap_run_post_config(pconf, plog, ptemp, server_conf) != OK) {
         ap_log_error(APLOG_MARK, APLOG_STARTUP |APLOG_ERR| APLOG_NOERRNO, 0, NULL, "Configuration Failed\n");
         destroy_and_exit_process(process, 1);
@@ -425,7 +428,11 @@ int main(int argc, const char * const argv[])
         ap_fini_vhost_config(pconf, server_conf);
         apr_sort_hooks();
        apr_pool_clear(plog);
-       ap_run_open_logs(pconf, plog, ptemp, server_conf);
+        if ( ap_run_open_logs(pconf, plog, ptemp, server_conf) != OK) {
+            ap_log_error(APLOG_MARK, APLOG_STARTUP |APLOG_ERR| APLOG_NOERRNO, 0, NULL, "Unable to open logs\n");
+            destroy_and_exit_process(process, 1);
+        }
+
        if  (ap_run_post_config(pconf, plog, ptemp, server_conf) != OK) {
             ap_log_error(APLOG_MARK, APLOG_STARTUP |APLOG_ERR | APLOG_NOERRNO, 0, NULL, "Configuration Failed\n");
             destroy_and_exit_process(process, 1);