aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorMax Laier <mlaier@FreeBSD.org>2004-10-05 08:26:34 +0000
committerMax Laier <mlaier@FreeBSD.org>2004-10-05 08:26:34 +0000
commit22d6889b4d3eb8a5cb2aaaefe5bedb40e885b425 (patch)
tree3a10a20f5070d5d655a3494b0c3ce36cc7deb710 /contrib
parent90d186c0cb50caa9102a52fd16ee86a44c3d7196 (diff)
downloadsrc-22d6889b4d3eb8a5cb2aaaefe5bedb40e885b425.tar.gz
src-22d6889b4d3eb8a5cb2aaaefe5bedb40e885b425.zip
Make pflogd cope with module unload (and the sudden disappearing of pflog0).
Instead of eating all the available CPU we now shutdown gracefully. Submitted by: yongari MFC after: 3 days
Notes
Notes: svn path=/head/; revision=136141
Diffstat (limited to 'contrib')
-rw-r--r--contrib/pf/pflogd/pflogd.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/contrib/pf/pflogd/pflogd.c b/contrib/pf/pflogd/pflogd.c
index cb2719764f32..a8c3863fb935 100644
--- a/contrib/pf/pflogd/pflogd.c
+++ b/contrib/pf/pflogd/pflogd.c
@@ -656,8 +656,16 @@ main(int argc, char **argv)
while (1) {
np = pcap_dispatch(hpcap, PCAP_NUM_PKTS,
dump_packet, (u_char *)dpcap);
- if (np < 0)
+ if (np < 0) {
+#ifdef __FreeBSD__
+ if (errno == ENXIO) {
+ logmsg(LOG_ERR,
+ "Device not/no longer configured");
+ break;
+ }
+#endif
logmsg(LOG_NOTICE, "%s", pcap_geterr(hpcap));
+ }
if (gotsig_close)
break;