diff options
author | Alexander Logvinov <avl@FreeBSD.org> | 2009-10-03 04:39:07 +0000 |
---|---|---|
committer | Alexander Logvinov <avl@FreeBSD.org> | 2009-10-03 04:39:07 +0000 |
commit | e75ccb2469111f5f803633d8e637cbe4fa26afef (patch) | |
tree | 55888a9e0b3194a0850128dd72a7e1f4bfd0a80a /mail/spamd/files | |
parent | 021bb9a90a12d0d16a5b76c2489dae123c407478 (diff) |
Notes
Diffstat (limited to 'mail/spamd/files')
-rw-r--r-- | mail/spamd/files/patch-spamd__grey.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/mail/spamd/files/patch-spamd__grey.c b/mail/spamd/files/patch-spamd__grey.c new file mode 100644 index 000000000000..a98d2f5254ed --- /dev/null +++ b/mail/spamd/files/patch-spamd__grey.c @@ -0,0 +1,29 @@ +--- ./spamd/grey.c.orig ++++ ./spamd/grey.c +@@ -329,9 +329,10 @@ + { + ipfw_table_entry ent; + int i; +- static int ipfw_socket; ++ static int ipfw_socket = 0; + +- ipfw_socket = socket(AF_INET, SOCK_RAW, IPPROTO_RAW); ++ if (ipfw_socket == 0) ++ ipfw_socket = socket(AF_INET, SOCK_RAW, IPPROTO_RAW); + + if (debug) + fprintf(stderr, "configure ipfw tabno: %d\n", ipfw_tabno); +@@ -363,8 +364,11 @@ + inet_aton(addrs[i], (struct in_addr *)&ent.addr); + if (setsockopt(ipfw_socket, IPPROTO_IP, IP_FW_TABLE_ADD, &ent, sizeof(ent)) < 0) + { +- syslog_r(LOG_INFO, &sdata, "IPFW setsockopt(IP_FW_TABLE_ADD) (%m)"); +- return(-1); ++ /* work around dups */ ++ if (errno != EEXIST) { ++ syslog_r(LOG_INFO, &sdata, "IPFW setsockopt(IP_FW_TABLE_ADD) (%m)"); ++ return(-1); ++ } + } + } + |