aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6
diff options
context:
space:
mode:
authorBrian Haley <brian.haley@hp.com>2007-08-25 02:16:08 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:48:32 -0400
commite773e4faa19c54c2f32ddd16add2919588488bd9 (patch)
tree316395a9c687155362913ec1c588c0217233f67e /net/ipv6
parent6f4fc423b96c8fdf6f5c8b8ad79b75b7fb5a5c59 (diff)
[IPV6]: Add v4mapped address inline
Add v4mapped address inline to avoid calls to ipv6_addr_type(). Signed-off-by: Brian Haley <brian.haley@hp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r--net/ipv6/ipv6_sockglue.c2
-rw-r--r--net/ipv6/tcp_ipv6.c4
-rw-r--r--net/ipv6/udp.c2
3 files changed, 4 insertions, 4 deletions
diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c
index 6b038aa72e88..74254fccbcc8 100644
--- a/net/ipv6/ipv6_sockglue.c
+++ b/net/ipv6/ipv6_sockglue.c
@@ -249,7 +249,7 @@ static int do_ipv6_setsockopt(struct sock *sk, int level, int optname,
249 } 249 }
250 250
251 if (ipv6_only_sock(sk) || 251 if (ipv6_only_sock(sk) ||
252 !(ipv6_addr_type(&np->daddr) & IPV6_ADDR_MAPPED)) { 252 !ipv6_addr_v4mapped(&np->daddr)) {
253 retv = -EADDRNOTAVAIL; 253 retv = -EADDRNOTAVAIL;
254 break; 254 break;
255 } 255 }
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index 3e06799b37a6..a07b59c528f3 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -697,7 +697,7 @@ static int tcp_v6_parse_md5_keys (struct sock *sk, char __user *optval,
697 if (!cmd.tcpm_keylen) { 697 if (!cmd.tcpm_keylen) {
698 if (!tcp_sk(sk)->md5sig_info) 698 if (!tcp_sk(sk)->md5sig_info)
699 return -ENOENT; 699 return -ENOENT;
700 if (ipv6_addr_type(&sin6->sin6_addr) & IPV6_ADDR_MAPPED) 700 if (ipv6_addr_v4mapped(&sin6->sin6_addr))
701 return tcp_v4_md5_do_del(sk, sin6->sin6_addr.s6_addr32[3]); 701 return tcp_v4_md5_do_del(sk, sin6->sin6_addr.s6_addr32[3]);
702 return tcp_v6_md5_do_del(sk, &sin6->sin6_addr); 702 return tcp_v6_md5_do_del(sk, &sin6->sin6_addr);
703 } 703 }
@@ -720,7 +720,7 @@ static int tcp_v6_parse_md5_keys (struct sock *sk, char __user *optval,
720 newkey = kmemdup(cmd.tcpm_key, cmd.tcpm_keylen, GFP_KERNEL); 720 newkey = kmemdup(cmd.tcpm_key, cmd.tcpm_keylen, GFP_KERNEL);
721 if (!newkey) 721 if (!newkey)
722 return -ENOMEM; 722 return -ENOMEM;
723 if (ipv6_addr_type(&sin6->sin6_addr) & IPV6_ADDR_MAPPED) { 723 if (ipv6_addr_v4mapped(&sin6->sin6_addr)) {
724 return tcp_v4_md5_do_add(sk, sin6->sin6_addr.s6_addr32[3], 724 return tcp_v4_md5_do_add(sk, sin6->sin6_addr.s6_addr32[3],
725 newkey, cmd.tcpm_keylen); 725 newkey, cmd.tcpm_keylen);
726 } 726 }
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
index c347f3e30e2e..82ff26dd4470 100644
--- a/net/ipv6/udp.c
+++ b/net/ipv6/udp.c
@@ -612,7 +612,7 @@ int udpv6_sendmsg(struct kiocb *iocb, struct sock *sk,
612 daddr = NULL; 612 daddr = NULL;
613 613
614 if (daddr) { 614 if (daddr) {
615 if (ipv6_addr_type(daddr) == IPV6_ADDR_MAPPED) { 615 if (ipv6_addr_v4mapped(daddr)) {
616 struct sockaddr_in sin; 616 struct sockaddr_in sin;
617 sin.sin_family = AF_INET; 617 sin.sin_family = AF_INET;
618 sin.sin_port = sin6 ? sin6->sin6_port : inet->dport; 618 sin.sin_port = sin6 ? sin6->sin6_port : inet->dport;