summaryrefslogtreecommitdiff
path: root/lib/ZParseNot.c
diff options
context:
space:
mode:
authorGravatar Karl Ramm <kcr@1ts.org>2009-12-18 15:33:18 +0000
committerGravatar Karl Ramm <kcr@1ts.org>2009-12-18 15:33:18 +0000
commitbdebdf31d76e65ee7a45ffaea219510fc7b9a3a7 (patch)
treefeb9f50d68d1f8119b05c7b5a5539294e31d9a93 /lib/ZParseNot.c
parent88e556d598741de725a73b757c072dc473e3e9c0 (diff)
roleplay accordingly with sin_len and sin6_len values on BSD systems
Diffstat (limited to 'lib/ZParseNot.c')
-rw-r--r--lib/ZParseNot.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/ZParseNot.c b/lib/ZParseNot.c
index e98bad6..d610049 100644
--- a/lib/ZParseNot.c
+++ b/lib/ZParseNot.c
@@ -262,9 +262,15 @@ ZParseNotice(char *buffer,
if (len == sizeof(notice->z_sender_sockaddr.ip6.sin6_addr)) {
notice->z_sender_sockaddr.ip6.sin6_family = AF_INET6;
memcpy(&notice->z_sender_sockaddr.ip6.sin6_addr, addrbuf, len);
+#ifdef HAVE_SOCKADDR_IN6_SIN6_LEN
+ notice->z_sender_sockaddr.ip6.sin6_len = sizeof(notice->z_sender_sockaddr.ip6);
+#endif
} else if (len == sizeof(notice->z_sender_sockaddr.ip4.sin_addr)) {
notice->z_sender_sockaddr.ip4.sin_family = AF_INET;
memcpy(&notice->z_sender_sockaddr.ip4.sin_addr, addrbuf, len);
+#ifdef HAVE_SOCKADDR_IN_SIN_LEN
+ notice->z_sender_sockaddr.ip4.sin_len = sizeof(notice->z_sender_sockaddr.ip4);
+#endif
} else
BAD_PACKET("address claims to be neither IPv4 or IPv6");
@@ -275,6 +281,9 @@ ZParseNotice(char *buffer,
sizeof notice->z_sender_sockaddr);
notice->z_sender_sockaddr.ip4.sin_family = AF_INET;
notice->z_sender_sockaddr.ip4.sin_addr = notice->z_uid.zuid_addr;
+#ifdef HAVE_SOCKADDR_IN_SIN_LEN
+ notice->z_sender_sockaddr.ip4.sin_len = sizeof(notice->z_sender_sockaddr.ip4);
+#endif
}
if (numfields && ptr < end) {