diff options
Diffstat (limited to 'ext/socket/ancdata.c')
-rw-r--r-- | ext/socket/ancdata.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/ext/socket/ancdata.c b/ext/socket/ancdata.c index 050da974c4..fa794eb182 100644 --- a/ext/socket/ancdata.c +++ b/ext/socket/ancdata.c @@ -573,9 +573,7 @@ extract_ipv6_pktinfo(VALUE self, struct in6_pktinfo *pktinfo_ptr, struct sockadd memcpy(pktinfo_ptr, RSTRING_PTR(data), sizeof(*pktinfo_ptr)); - memset(sa_ptr, 0, sizeof(*sa_ptr)); - SET_SA_LEN((struct sockaddr *)sa_ptr, sizeof(struct sockaddr_in6)); - sa_ptr->sin6_family = AF_INET6; + INIT_SOCKADDR((struct sockaddr *)sa_ptr, AF_INET6, sizeof(*sa_ptr)); memcpy(&sa_ptr->sin6_addr, &pktinfo_ptr->ipi6_addr, sizeof(sa_ptr->sin6_addr)); if (IN6_IS_ADDR_LINKLOCAL(&sa_ptr->sin6_addr)) sa_ptr->sin6_scope_id = pktinfo_ptr->ipi6_ifindex; |