Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Oct 2020 08:11:48 +0000
From:      "yannis.planus_alstomgroup.com (Yannis Planus)" <phabric-noreply@FreeBSD.org>
To:        Phabricator <phabric-noreply@FreeBSD.org>
Cc:        freebsd-net@freebsd.org
Subject:   [Differential] D26757: Fix to join AllHost mcast group again when adding an existing IP address
Message-ID:  <14b95efcb52db708ba026e14034ca451@localhost.localdomain>
In-Reply-To: <differential-rev-PHID-DREV-6p7swwnwsjwmyozi3buz-req@reviews.freebsd.org>

index | next in thread | previous in thread | raw e-mail

[-- Attachment #1 --]
yannis.planus_alstomgroup.com created this revision.
yannis.planus_alstomgroup.com added reviewers: network, mw.
Herald added subscribers: melifaro, imp.
yannis.planus_alstomgroup.com requested review of this revision.

REVISION SUMMARY
  When calling SIOCAIFADDR ioctl with an existing IP address, this IP address was deleted and AllHost multicast group leaved.
  Then IP address was added again but AllHost multicast group was not joined.

REPOSITORY
  rS FreeBSD src repository

REVISION DETAIL
  https://reviews.freebsd.org/D26757

AFFECTED FILES
  sys/netinet/in.c

CHANGE DETAILS

diff --git a/sys/netinet/in.c b/sys/netinet/in.c
--- a/sys/netinet/in.c
+++ b/sys/netinet/in.c
@@ -379,10 +379,11 @@
 			continue;
 
 		it = (struct in_ifaddr *)ifa;
-		iaIsFirst = false;
 		if (it->ia_addr.sin_addr.s_addr == addr->sin_addr.s_addr &&
 		    prison_check_ip4(td->td_ucred, &addr->sin_addr) == 0)
 			ia = it;
+		else
+			iaIsFirst = false;
 	}
 	IF_ADDR_RUNLOCK(ifp);
 



EMAIL PREFERENCES
  https://reviews.freebsd.org/settings/panel/emailpreferences/

To: yannis.planus_alstomgroup.com, #network, mw
Cc: imp, freebsd-net-list, melifaro, rscheff

[-- Attachment #2 --]
diff --git a/sys/netinet/in.c b/sys/netinet/in.c
--- a/sys/netinet/in.c
+++ b/sys/netinet/in.c
@@ -379,10 +379,11 @@
 			continue;
 
 		it = (struct in_ifaddr *)ifa;
-		iaIsFirst = false;
 		if (it->ia_addr.sin_addr.s_addr == addr->sin_addr.s_addr &&
 		    prison_check_ip4(td->td_ucred, &addr->sin_addr) == 0)
 			ia = it;
+		else
+			iaIsFirst = false;
 	}
 	IF_ADDR_RUNLOCK(ifp);
 

home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?14b95efcb52db708ba026e14034ca451>