summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2006-01-21 10:38:44 +0000
committerLennart Poettering <lennart@poettering.net>2006-01-21 10:38:44 +0000
commit43c48320451c04db9c8550dc440ed443a9dcc120 (patch)
tree25c3f6bfbfb0ddec301a035f93e9b012d66f5f5e
parentee9b3b534bcd12755b450d42d28d820bd702e27d (diff)
some minor changes to get mod_dnssd to work across graceful restarts
git-svn-id: file:///home/lennart/svn/public/mod_dnssd/trunk@22 634eccf8-0006-0410-930e-e16565b0b7de
-rw-r--r--Makefile.am5
-rw-r--r--src/mod_dnssd.c10
2 files changed, 11 insertions, 4 deletions
diff --git a/Makefile.am b/Makefile.am
index 37c85f1..94feca3 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -32,4 +32,7 @@ homepage: all dist
cp doc/README.html doc/style.css $$HOME/homepage/private/projects/mod_dnssd
ln -sf $$HOME/homepage/private/projects/mod_dnssd/README.html $$HOME/homepage/private/projects/mod_dnssd/index.html
-.PHONY: homepage
+distcleancheck:
+ @:
+
+.PHONY: homepage distcleancheck
diff --git a/src/mod_dnssd.c b/src/mod_dnssd.c
index 0a9a2fa..da49db3 100644
--- a/src/mod_dnssd.c
+++ b/src/mod_dnssd.c
@@ -531,6 +531,8 @@ static void child_process(apr_pool_t *p, server_rec *server, struct global_confi
ap_assert(d);
+ sleep(5);
+
unixd_setup_child();
if (pipe(sigterm_pipe_fds) < 0) {
@@ -542,6 +544,8 @@ static void child_process(apr_pool_t *p, server_rec *server, struct global_confi
set_nonblock(sigterm_pipe_fds[1]);
apr_signal(SIGTERM, sigterm);
+ apr_signal(SIGHUP, sigterm);
+ apr_signal(AP_SIG_GRACEFUL, SIG_IGN);
r.main_server = server;
r.global_config_data = d;
@@ -550,7 +554,7 @@ static void child_process(apr_pool_t *p, server_rec *server, struct global_confi
r.services = NULL;
apr_pool_create(&r.pool, p);
-/* ap_log_error(APLOG_MARK, APLOG_ERR, 0, r.main_server, "Child process startup pid=%lu", (unsigned long) getpid()); */
+ ap_log_error(APLOG_MARK, APLOG_ERR, 0, r.main_server, "Child process startup pid=%lu", (unsigned long) getpid());
assemble_services(&r);
@@ -573,7 +577,7 @@ static void child_process(apr_pool_t *p, server_rec *server, struct global_confi
goto quit;
}
-/* ap_log_error(APLOG_MARK, APLOG_ERR, 0, r.main_server, "Child process running"); */
+ ap_log_error(APLOG_MARK, APLOG_ERR, 0, r.main_server, "Child process running");
avahi_simple_poll_loop(r.simple_poll);
@@ -596,7 +600,7 @@ quit:
sigterm_pipe_fds[0] = sigterm_pipe_fds[1] = -1;
-/* ap_log_error(APLOG_MARK, APLOG_ERR, 0, r.main_server, "Child process ending"); */
+ ap_log_error(APLOG_MARK, APLOG_ERR, 0, r.main_server, "Child process ending");
}
static int start_child_process(apr_pool_t *p, server_rec *server, struct global_config_data *d) {