From: Michael Poole Date: Tue, 11 Aug 2009 03:53:19 +0000 (-0400) Subject: Fix mod-blacklist (really, all of SAR) not working on BSDs. X-Git-Url: http://git.pk910.de/?p=srvx.git;a=commitdiff_plain;h=d1d47b28b63d04bb4010a1e459853f4766a92a13 Fix mod-blacklist (really, all of SAR) not working on BSDs. Fixes SF bug #2817939, reported by sky5. src/sar.c (ipv4_pton): Set the sockaddr length field when it exists. (ipv6_pton): Likewise. --- diff --git a/src/sar.c b/src/sar.c index 4b15001..0618ed4 100644 --- a/src/sar.c +++ b/src/sar.c @@ -1669,6 +1669,9 @@ ipv4_pton(struct sockaddr *sa, UNUSED_ARG(unsigned int socklen), unsigned int *b if (!pos) return 0; sa->sa_family = AF_INET; +#if defined(HAVE_SOCKADDR_SA_LEN) + sa->sa_len = sizeof(struct sockaddr_in); +#endif return pos; } @@ -1902,6 +1905,9 @@ ipv6_pton(struct sockaddr *sa, UNUSED_ARG(unsigned int socklen), unsigned int *b sin6->sin6_addr.s6_addr[cpos + jj] = 0; } sa->sa_family = AF_INET6; +#if defined(HAVE_SOCKADDR_SA_LEN) + sa->sa_len = sizeof(struct sockaddr_in6); +#endif return pos; }