From 5b8339edf65091d3fab69cd902954a8da291b33f Mon Sep 17 00:00:00 2001 From: akr Date: Fri, 13 Feb 2009 12:00:25 +0000 Subject: * ext/socket/ancdata.c (extract_ipv6_pktinfo): set sa_len for 4.4BSD. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22287 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ ext/socket/ancdata.c | 1 + 2 files changed, 5 insertions(+) diff --git a/ChangeLog b/ChangeLog index 85ee49027c..f8d2de674e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Fri Feb 13 20:59:48 2009 Tanaka Akira + + * ext/socket/ancdata.c (extract_ipv6_pktinfo): set sa_len for 4.4BSD. + Fri Feb 13 15:34:18 2009 Nobuyoshi Nakada * iseq.c (simple_default_value): removed. default values of optional diff --git a/ext/socket/ancdata.c b/ext/socket/ancdata.c index b2c246260d..755fa38463 100644 --- a/ext/socket/ancdata.c +++ b/ext/socket/ancdata.c @@ -400,6 +400,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; memcpy(&sa_ptr->sin6_addr, &pktinfo_ptr->ipi6_addr, sizeof(sa_ptr->sin6_addr)); if (IN6_IS_ADDR_LINKLOCAL(&sa_ptr->sin6_addr)) -- cgit v1.2.3