Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9e89fd8b authored by Sven Wegener's avatar Sven Wegener Committed by David S. Miller
Browse files

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: default avatarSven Wegener <sven.wegener@stealer.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f666f87b
Loading
Loading
Loading
Loading
+12 −13
Original line number Diff line number Diff line
@@ -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;