Shutting down pflogd gracefully

Pyun YongHyeon yongari at kt-is.co.kr
Mon Oct 4 00:45:57 PDT 2004


Hi,

When pf module is unloaded prior to termination of pflogd(8),
pflogd(8) takes up all available CPU cycles. This patch tries
to address the long standing issue. Comments?

--- contrib/pf/pflogd/pflogd.c.orig	Wed Sep  1 03:04:34 2004
+++ contrib/pf/pflogd/pflogd.c	Mon Oct  4 16:18:51 2004
@@ -656,8 +656,13 @@
 	while (1) {
 		np = pcap_dispatch(hpcap, PCAP_NUM_PKTS,
 		    dump_packet, (u_char *)dpcap);
-		if (np < 0)
+		if (np < 0) {
 			logmsg(LOG_NOTICE, "%s", pcap_geterr(hpcap));
+#ifdef __FreeBSD__
+			/* check errno == ENXIO? */
+			break;
+#endif
+		}
 
 		if (gotsig_close)
 			break;

While fixing the issue, I noticed log messages via syslog is not
gernerated. But in debugging mode(-D) outputting to stderr worked
ok.(Killing pflogd with kill doesn't generate "Exiting" message.)
Any ideas?

Regards,
Pyun YongHyeon
-- 
Pyun YongHyeon <http://www.kr.freebsd.org/~yongari>


More information about the freebsd-pf mailing list