diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2006-08-09 18:47:12 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-09-22 17:54:14 -0400 |
commit | 8f491069b40be5d627007a343f99759e9da6a178 (patch) | |
tree | ba2be735de32fa30015fe22febf4329c8e79ca25 /net/ipv4 | |
parent | 832b4c5e184391773e462653aa862a8cab71f38d (diff) |
[IPV4]: Use network-order dport for all visible inet_lookup_*
Right now most inet_lookup_* functions take a host-order hnum instead
of a network-order dport because that's how it is represented
internally.
This means that users of these functions have to be careful about
using the right byte-order. To add more confusion, inet_lookup takes
a network-order dport unlike all other functions.
So this patch changes all visible inet_lookup functions to take a
dport and move all dport->hnum conversion inside them.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/inet_hashtables.c | 18 | ||||
-rw-r--r-- | net/ipv4/tcp_ipv4.c | 10 |
2 files changed, 14 insertions, 14 deletions
diff --git a/net/ipv4/inet_hashtables.c b/net/ipv4/inet_hashtables.c index bfc39066e730..fb296c9a7f3f 100644 --- a/net/ipv4/inet_hashtables.c +++ b/net/ipv4/inet_hashtables.c | |||
@@ -124,10 +124,10 @@ EXPORT_SYMBOL(inet_listen_wlock); | |||
124 | * remote address for the connection. So always assume those are both | 124 | * remote address for the connection. So always assume those are both |
125 | * wildcarded during the search since they can never be otherwise. | 125 | * wildcarded during the search since they can never be otherwise. |
126 | */ | 126 | */ |
127 | static struct sock *__inet_lookup_listener(const struct hlist_head *head, | 127 | static struct sock *inet_lookup_listener_slow(const struct hlist_head *head, |
128 | const u32 daddr, | 128 | const u32 daddr, |
129 | const unsigned short hnum, | 129 | const unsigned short hnum, |
130 | const int dif) | 130 | const int dif) |
131 | { | 131 | { |
132 | struct sock *result = NULL, *sk; | 132 | struct sock *result = NULL, *sk; |
133 | const struct hlist_node *node; | 133 | const struct hlist_node *node; |
@@ -162,9 +162,9 @@ static struct sock *__inet_lookup_listener(const struct hlist_head *head, | |||
162 | } | 162 | } |
163 | 163 | ||
164 | /* Optimize the common listener case. */ | 164 | /* Optimize the common listener case. */ |
165 | struct sock *inet_lookup_listener(struct inet_hashinfo *hashinfo, | 165 | struct sock *__inet_lookup_listener(struct inet_hashinfo *hashinfo, |
166 | const u32 daddr, const unsigned short hnum, | 166 | const u32 daddr, const unsigned short hnum, |
167 | const int dif) | 167 | const int dif) |
168 | { | 168 | { |
169 | struct sock *sk = NULL; | 169 | struct sock *sk = NULL; |
170 | const struct hlist_head *head; | 170 | const struct hlist_head *head; |
@@ -179,7 +179,7 @@ struct sock *inet_lookup_listener(struct inet_hashinfo *hashinfo, | |||
179 | (sk->sk_family == PF_INET || !ipv6_only_sock(sk)) && | 179 | (sk->sk_family == PF_INET || !ipv6_only_sock(sk)) && |
180 | !sk->sk_bound_dev_if) | 180 | !sk->sk_bound_dev_if) |
181 | goto sherry_cache; | 181 | goto sherry_cache; |
182 | sk = __inet_lookup_listener(head, daddr, hnum, dif); | 182 | sk = inet_lookup_listener_slow(head, daddr, hnum, dif); |
183 | } | 183 | } |
184 | if (sk) { | 184 | if (sk) { |
185 | sherry_cache: | 185 | sherry_cache: |
@@ -188,7 +188,7 @@ sherry_cache: | |||
188 | read_unlock(&hashinfo->lhash_lock); | 188 | read_unlock(&hashinfo->lhash_lock); |
189 | return sk; | 189 | return sk; |
190 | } | 190 | } |
191 | EXPORT_SYMBOL_GPL(inet_lookup_listener); | 191 | EXPORT_SYMBOL_GPL(__inet_lookup_listener); |
192 | 192 | ||
193 | /* called with local bh disabled */ | 193 | /* called with local bh disabled */ |
194 | static int __inet_check_established(struct inet_timewait_death_row *death_row, | 194 | static int __inet_check_established(struct inet_timewait_death_row *death_row, |
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index b2aa512a30e9..2973dee0a489 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c | |||
@@ -951,9 +951,9 @@ static struct sock *tcp_v4_hnd_req(struct sock *sk, struct sk_buff *skb) | |||
951 | if (req) | 951 | if (req) |
952 | return tcp_check_req(sk, skb, req, prev); | 952 | return tcp_check_req(sk, skb, req, prev); |
953 | 953 | ||
954 | nsk = __inet_lookup_established(&tcp_hashinfo, skb->nh.iph->saddr, | 954 | nsk = inet_lookup_established(&tcp_hashinfo, skb->nh.iph->saddr, |
955 | th->source, skb->nh.iph->daddr, | 955 | th->source, skb->nh.iph->daddr, |
956 | ntohs(th->dest), inet_iif(skb)); | 956 | th->dest, inet_iif(skb)); |
957 | 957 | ||
958 | if (nsk) { | 958 | if (nsk) { |
959 | if (nsk->sk_state != TCP_TIME_WAIT) { | 959 | if (nsk->sk_state != TCP_TIME_WAIT) { |
@@ -1090,7 +1090,7 @@ int tcp_v4_rcv(struct sk_buff *skb) | |||
1090 | TCP_SKB_CB(skb)->sacked = 0; | 1090 | TCP_SKB_CB(skb)->sacked = 0; |
1091 | 1091 | ||
1092 | sk = __inet_lookup(&tcp_hashinfo, skb->nh.iph->saddr, th->source, | 1092 | sk = __inet_lookup(&tcp_hashinfo, skb->nh.iph->saddr, th->source, |
1093 | skb->nh.iph->daddr, ntohs(th->dest), | 1093 | skb->nh.iph->daddr, th->dest, |
1094 | inet_iif(skb)); | 1094 | inet_iif(skb)); |
1095 | 1095 | ||
1096 | if (!sk) | 1096 | if (!sk) |
@@ -1168,7 +1168,7 @@ do_time_wait: | |||
1168 | case TCP_TW_SYN: { | 1168 | case TCP_TW_SYN: { |
1169 | struct sock *sk2 = inet_lookup_listener(&tcp_hashinfo, | 1169 | struct sock *sk2 = inet_lookup_listener(&tcp_hashinfo, |
1170 | skb->nh.iph->daddr, | 1170 | skb->nh.iph->daddr, |
1171 | ntohs(th->dest), | 1171 | th->dest, |
1172 | inet_iif(skb)); | 1172 | inet_iif(skb)); |
1173 | if (sk2) { | 1173 | if (sk2) { |
1174 | inet_twsk_deschedule((struct inet_timewait_sock *)sk, | 1174 | inet_twsk_deschedule((struct inet_timewait_sock *)sk, |