Sat Oct 3 00:03:05 2009 UTC ()
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.


(tsarna)
diff -r1.2 -r1.3 src/external/apache2/mDNSResponder/dist/mDNSPosix/PosixDaemon.c
diff -r1.3 -r1.4 src/external/apache2/mDNSResponder/usr.sbin/mdnsd/Makefile

cvs diff -r1.2 -r1.3 src/external/apache2/mDNSResponder/dist/mDNSPosix/PosixDaemon.c (expand / switch to context diff)
--- src/external/apache2/mDNSResponder/dist/mDNSPosix/PosixDaemon.c 2009/10/01 16:36:20 1.2
+++ src/external/apache2/mDNSResponder/dist/mDNSPosix/PosixDaemon.c 2009/10/03 00:03:05 1.3
@@ -213,6 +213,10 @@
 	mDNSPosixListenForSignalInEventLoop(SIGINT);
 	mDNSPosixListenForSignalInEventLoop(SIGTERM);
 	mDNSPosixListenForSignalInEventLoop(SIGUSR1);
+#ifdef HAVE_SIGINFO
+	mDNSPosixListenForSignalInEventLoop(SIGUSR2);
+	mDNSPosixListenForSignalInEventLoop(SIGINFO);
+#endif
 	mDNSPosixListenForSignalInEventLoop(SIGPIPE);
 	mDNSPosixListenForSignalInEventLoop(SIGHUP) ;
 
@@ -239,7 +243,22 @@
 		(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;

cvs diff -r1.3 -r1.4 src/external/apache2/mDNSResponder/usr.sbin/mdnsd/Makefile (expand / switch to context diff)
--- src/external/apache2/mDNSResponder/usr.sbin/mdnsd/Makefile 2009/10/01 10:01:14 1.3
+++ src/external/apache2/mDNSResponder/usr.sbin/mdnsd/Makefile 2009/10/03 00:03:05 1.4
@@ -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 @@
 
 .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