From 3c8b3fccbd2ddd56da05c66c8b254927d90437eb Mon Sep 17 00:00:00 2001 From: tsarna Date: Sat, 3 Oct 2009 00:03:05 +0000 Subject: [PATCH] Make signals match what OS X and the manpage say. Implement toggles for debug and packet trace logging. Make this conditional on HAVE_SIGINFO. Presumably lack of SIGINFO as a standard posix feature is why they went with different signals here in the first place, but since we have it, let's use it. --- .../dist/mDNSPosix/PosixDaemon.c | 19 +++++++++++++++++++ .../mDNSResponder/usr.sbin/mdnsd/Makefile | 5 +++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/external/apache2/mDNSResponder/dist/mDNSPosix/PosixDaemon.c b/external/apache2/mDNSResponder/dist/mDNSPosix/PosixDaemon.c index dd353514a142..54c87c37109a 100644 --- a/external/apache2/mDNSResponder/dist/mDNSPosix/PosixDaemon.c +++ b/external/apache2/mDNSResponder/dist/mDNSPosix/PosixDaemon.c @@ -213,6 +213,10 @@ mDNSlocal mStatus MainLoop(mDNS *m) // Loop until we quit. mDNSPosixListenForSignalInEventLoop(SIGINT); mDNSPosixListenForSignalInEventLoop(SIGTERM); mDNSPosixListenForSignalInEventLoop(SIGUSR1); +#ifdef HAVE_SIGINFO + mDNSPosixListenForSignalInEventLoop(SIGUSR2); + mDNSPosixListenForSignalInEventLoop(SIGINFO); +#endif mDNSPosixListenForSignalInEventLoop(SIGPIPE); mDNSPosixListenForSignalInEventLoop(SIGHUP) ; @@ -239,7 +243,22 @@ mDNSlocal mStatus MainLoop(mDNS *m) // Loop until we quit. (void) mDNSPosixRunEventLoopOnce(m, &timeout, &signals, &gotData); if (sigismember(&signals, SIGHUP )) Reconfigure(m); +#ifdef HAVE_SIGINFO + /* use OSX-compatible signals since we can, and gain enhanced debugging */ + if (sigismember(&signals, SIGINFO)) DumpStateLog(m); + if (sigismember(&signals, SIGUSR1)) + { + mDNS_LoggingEnabled = mDNS_LoggingEnabled ? 0 : 1; + LogMsg("SIGUSR1: Logging %s", mDNS_LoggingEnabled ? "Enabled" : "Disabled"); + } + if (sigismember(&signals, SIGUSR2)) + { + mDNS_PacketLoggingEnabled = mDNS_PacketLoggingEnabled ? 0 : 1; + LogMsg("SIGUSR2: Packet Logging %s", mDNS_PacketLoggingEnabled ? "Enabled" : "Disabled"); + } +#else if (sigismember(&signals, SIGUSR1)) DumpStateLog(m); +#endif // SIGPIPE happens when we try to write to a dead client; death should be detected soon in request_callback() and cleaned up. if (sigismember(&signals, SIGPIPE)) LogMsg("Received SIGPIPE - ignoring"); if (sigismember(&signals, SIGINT) || sigismember(&signals, SIGTERM)) break; diff --git a/external/apache2/mDNSResponder/usr.sbin/mdnsd/Makefile b/external/apache2/mDNSResponder/usr.sbin/mdnsd/Makefile index 45a31f5f7624..b19ad1f3e262 100644 --- a/external/apache2/mDNSResponder/usr.sbin/mdnsd/Makefile +++ b/external/apache2/mDNSResponder/usr.sbin/mdnsd/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.3 2009/10/01 10:01:14 tron Exp $ +# $NetBSD: Makefile,v 1.4 2009/10/03 00:03:05 tsarna Exp $ PROG= mdnsd @@ -6,7 +6,8 @@ PROG= mdnsd .PATH: ${DIST}/mDNSPosix ${DIST}/mDNSCore ${DIST}/mDNSShared -CPPFLAGS+=-I${DIST}/mDNSCore -I${DIST}/mDNSShared -DPROGRAM_NAME=\"mdnsd\" +CPPFLAGS+=-I${DIST}/mDNSCore -I${DIST}/mDNSShared \ + -DPROGRAM_NAME=\"mdnsd\" -DHAVE_SIGINFO SRCS= PosixDaemon.c mDNSPosix.c mDNSUNP.c mDNS.c DNSDigest.c uDNS.c \ DNSCommon.c uds_daemon.c mDNSDebug.c dnssd_ipc.c GenLinkedList.c \ PlatformCommon.c