summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorume <ume@FreeBSD.org>2004-01-10 08:11:51 +0000
committerume <ume@FreeBSD.org>2004-01-10 08:11:51 +0000
commita48a902f6fb84764c5f082cfbf9d5a5f2d805113 (patch)
tree1cfb9194f16838767229d8809c1bb959cb5d588c
parentc2134f4017f9fbae7b1bb8b16b2b7cfc250646c3 (diff)
downloadFreeBSD-src-a48a902f6fb84764c5f082cfbf9d5a5f2d805113.zip
FreeBSD-src-a48a902f6fb84764c5f082cfbf9d5a5f2d805113.tar.gz
in set{peer, sock}addr, do not convert the unspecified
address (::) to the mapped address form. PR: kern/22868 Obtained from: KAME MFC after: 3 days
-rw-r--r--sys/netinet6/in6_pcb.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/netinet6/in6_pcb.c b/sys/netinet6/in6_pcb.c
index b3d58e8..6b3f91b 100644
--- a/sys/netinet6/in6_pcb.c
+++ b/sys/netinet6/in6_pcb.c
@@ -561,7 +561,7 @@ in6_mapped_sockaddr(struct socket *so, struct sockaddr **nam)
if (inp == NULL)
return EINVAL;
- if (inp->inp_vflag & INP_IPV4) {
+ if ((inp->inp_vflag & (INP_IPV4 | INP_IPV6)) == INP_IPV4) {
error = in_setsockaddr(so, nam, &tcbinfo);
if (error == 0)
in6_sin_2_v4mapsin6_in_sock(nam);
@@ -581,7 +581,7 @@ in6_mapped_peeraddr(struct socket *so, struct sockaddr **nam)
if (inp == NULL)
return EINVAL;
- if (inp->inp_vflag & INP_IPV4) {
+ if ((inp->inp_vflag & (INP_IPV4 | INP_IPV6)) == INP_IPV4) {
error = in_setpeeraddr(so, nam, &tcbinfo);
if (error == 0)
in6_sin_2_v4mapsin6_in_sock(nam);
OpenPOWER on IntegriCloud