diff options
Diffstat (limited to 'otherlibs/unix/socketaddr.c')
-rw-r--r-- | otherlibs/unix/socketaddr.c | 6 |
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; } |