summaryrefslogtreecommitdiffstats
path: root/otherlibs/unix/socketaddr.c
diff options
context:
space:
mode:
Diffstat (limited to 'otherlibs/unix/socketaddr.c')
-rw-r--r--otherlibs/unix/socketaddr.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/otherlibs/unix/socketaddr.c b/otherlibs/unix/socketaddr.c
index 0ee1cf5ee..f285d15a7 100644
--- a/otherlibs/unix/socketaddr.c
+++ b/otherlibs/unix/socketaddr.c
@@ -80,6 +80,9 @@ void get_sockaddr(value mladr,
adr->s_inet6.sin6_family = AF_INET6;
adr->s_inet6.sin6_addr = GET_INET6_ADDR(Field(mladr, 0));
adr->s_inet6.sin6_port = htons(Int_val(Field(mladr, 1)));
+#ifdef SIN6_LEN
+ adr->s_inet6.sin6_len = sizeof(struct sockaddr_in6);
+#endif
*adr_len = sizeof(struct sockaddr_in6);
break;
}
@@ -88,6 +91,9 @@ void get_sockaddr(value mladr,
adr->s_inet.sin_family = AF_INET;
adr->s_inet.sin_addr = GET_INET_ADDR(Field(mladr, 0));
adr->s_inet.sin_port = htons(Int_val(Field(mladr, 1)));
+#ifdef SIN6_LEN
+ adr->s_inet.sin_len = sizeof(struct sockaddr_in);
+#endif
*adr_len = sizeof(struct sockaddr_in);
break;
}