[automerger skipped] Fix listing of interfaces with ID > 255 am: 4400e30d33 am: e19915d15d am: 7b6aea7183 -s ours

am skip reason: Merged-In Iddca5052e7d76bc7878f0442acb9ccd67cbb620f with SHA-1 4400e30d33 is already in history

Original change: https://googleplex-android-review.googlesource.com/c/platform/external/mdnsresponder/+/18883665

Change-Id: I4f355f06feecc3a424a2b673680f96bd47746684
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
index 8960c93..28f4e06 100644
--- a/mDNSPosix/mDNSPosix.c
+++ b/mDNSPosix/mDNSPosix.c
@@ -1102,14 +1102,14 @@
 	}
 #endif
 
-mDNSlocal mDNSu32		ProcessRoutingNotification(int sd)
+mDNSlocal mDNSBool		ProcessRoutingNotification(int sd)
 // Read through the messages on sd and if any indicate that any interface records should
 // be torn down and rebuilt, return affected indices as a bitmask. Otherwise return 0.
 	{
 	ssize_t					readCount;
 	char					buff[4096];	
 	struct nlmsghdr			*pNLMsg = (struct nlmsghdr*) buff;
-	mDNSu32				result = 0;
+	mDNSBool				result = mDNSfalse;
 	
 	// The structure here is more complex than it really ought to be because,
 	// unfortunately, there's no good way to size a buffer in advance large
@@ -1144,10 +1144,9 @@
 #endif
 
 		// Process the NetLink message
-		if (pNLMsg->nlmsg_type == RTM_GETLINK || pNLMsg->nlmsg_type == RTM_NEWLINK)
-			result |= 1 << ((struct ifinfomsg*) NLMSG_DATA(pNLMsg))->ifi_index;
-		else if (pNLMsg->nlmsg_type == RTM_DELADDR || pNLMsg->nlmsg_type == RTM_NEWADDR)
-			result |= 1 << ((struct ifaddrmsg*) NLMSG_DATA(pNLMsg))->ifa_index;
+		if (pNLMsg->nlmsg_type == RTM_GETLINK || pNLMsg->nlmsg_type == RTM_NEWLINK ||
+				pNLMsg->nlmsg_type == RTM_DELADDR || pNLMsg->nlmsg_type == RTM_NEWADDR)
+			result = mDNStrue;
 
 		// Advance pNLMsg to the next message in the buffer
 		if ((pNLMsg->nlmsg_flags & NLM_F_MULTI) != 0 && pNLMsg->nlmsg_type != NLMSG_DONE)
@@ -1191,14 +1190,14 @@
 	}
 #endif
 
-mDNSlocal mDNSu32		ProcessRoutingNotification(int sd)
+mDNSlocal mDNSBool		ProcessRoutingNotification(int sd)
 // Read through the messages on sd and if any indicate that any interface records should
 // be torn down and rebuilt, return affected indices as a bitmask. Otherwise return 0.
 	{
 	ssize_t					readCount;
 	char					buff[4096];	
 	struct ifa_msghdr		*pRSMsg = (struct ifa_msghdr*) buff;
-	mDNSu32				result = 0;
+	mDNSBool				result = mDNSfalse;
 
 	readCount = read(sd, buff, sizeof buff);
 	if (readCount < (ssize_t) sizeof(struct ifa_msghdr))
@@ -1212,10 +1211,7 @@
 	if (pRSMsg->ifam_type == RTM_NEWADDR || pRSMsg->ifam_type == RTM_DELADDR ||
 		 pRSMsg->ifam_type == RTM_IFINFO)
 		{
-		if (pRSMsg->ifam_type == RTM_IFINFO)
-			result |= 1 << ((struct if_msghdr*) pRSMsg)->ifm_index;
-		else
-			result |= 1 << pRSMsg->ifam_index;
+		result = mDNStrue;
 		}
 
 	return result;
@@ -1228,7 +1224,7 @@
 	{
 	IfChangeRec		*pChgRec = (IfChangeRec*) context;
 	fd_set			readFDs;
-	mDNSu32		changedInterfaces = 0;
+	mDNSBool		changedInterfaces = mDNSfalse;
 	struct timeval	zeroTimeout = { 0, 0 };
 
 	(void)fd; // Unused
diff --git a/mDNSPosix/mDNSUNP.c b/mDNSPosix/mDNSUNP.c
index f5d0c52..0e3632b 100755
--- a/mDNSPosix/mDNSUNP.c
+++ b/mDNSPosix/mDNSUNP.c
@@ -106,7 +106,7 @@
 			goto gotError;
 		}
 		while (fscanf(fp,
-					  "%4s%4s%4s%4s%4s%4s%4s%4s %x %02x %02x %02x %15s\n",
+					  "%4s%4s%4s%4s%4s%4s%4s%4s %x %x %x %x %15s\n",
 					  addr[0],addr[1],addr[2],addr[3],
 					  addr[4],addr[5],addr[6],addr[7],
 					  &index, &plen, &scope, &flags, ifname) != EOF) {