提交 9e89fd8b 编写于 作者: S Sven Wegener 提交者: David S. Miller

ipv6: Shrink udp_v6_mcast_next() to one socket variable

To avoid the confusion of having two variables, shrink the function to
only use the parameter variable for looping.

Cc: Eric Dumazet <edumazet@google.com>
Signed-off-by: NSven Wegener <sven.wegener@stealer.net>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 f666f87b
......@@ -705,35 +705,34 @@ static struct sock *udp_v6_mcast_next(struct net *net, struct sock *sk,
int dif)
{
struct hlist_nulls_node *node;
struct sock *s = sk;
unsigned short num = ntohs(loc_port);
sk_nulls_for_each_from(s, node) {
struct inet_sock *inet = inet_sk(s);
sk_nulls_for_each_from(sk, node) {
struct inet_sock *inet = inet_sk(sk);
if (!net_eq(sock_net(s), net))
if (!net_eq(sock_net(sk), net))
continue;
if (udp_sk(s)->udp_port_hash == num &&
s->sk_family == PF_INET6) {
if (udp_sk(sk)->udp_port_hash == num &&
sk->sk_family == PF_INET6) {
if (inet->inet_dport) {
if (inet->inet_dport != rmt_port)
continue;
}
if (!ipv6_addr_any(&s->sk_v6_daddr) &&
!ipv6_addr_equal(&s->sk_v6_daddr, rmt_addr))
if (!ipv6_addr_any(&sk->sk_v6_daddr) &&
!ipv6_addr_equal(&sk->sk_v6_daddr, rmt_addr))
continue;
if (s->sk_bound_dev_if && s->sk_bound_dev_if != dif)
if (sk->sk_bound_dev_if && sk->sk_bound_dev_if != dif)
continue;
if (!ipv6_addr_any(&s->sk_v6_rcv_saddr)) {
if (!ipv6_addr_equal(&s->sk_v6_rcv_saddr, loc_addr))
if (!ipv6_addr_any(&sk->sk_v6_rcv_saddr)) {
if (!ipv6_addr_equal(&sk->sk_v6_rcv_saddr, loc_addr))
continue;
}
if (!inet6_mc_check(s, loc_addr, rmt_addr))
if (!inet6_mc_check(sk, loc_addr, rmt_addr))
continue;
return s;
return sk;
}
}
return NULL;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册