Просмотр исходного кода

totemconfig: ipaddr_equal use switch

Compiler may have problem understanding relation between addr1p and
addrlen. Small change makes code a little more readable and compiler
happy.

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
Jan Friesse 6 лет назад
Родитель
Сommit
299c9c5b70
1 измененных файлов с 7 добавлено и 4 удалено
  1. 7 4
      exec/totemconfig.c

+ 7 - 4
exec/totemconfig.c

@@ -630,17 +630,20 @@ static int ipaddr_equal(const struct sockaddr *addr1, const struct sockaddr *add
 	if (addr1->sa_family != addr2->sa_family)
 		return 0;
 
-	if (addr1->sa_family == AF_INET) {
+	switch (addr1->sa_family) {
+	case AF_INET:
 		addrlen = sizeof(struct in_addr);
 		addr1p = &((struct sockaddr_in *)addr1)->sin_addr;
 		addr2p = &((struct sockaddr_in *)addr2)->sin_addr;
-	}
-	if (addr1->sa_family == AF_INET6) {
+		break;
+	case AF_INET6:
 		addrlen = sizeof(struct in6_addr);
 		addr1p = &((struct sockaddr_in6 *)addr1)->sin6_addr;
 		addr2p = &((struct sockaddr_in6 *)addr2)->sin6_addr;
+		break;
+	default:
+		assert(0);
 	}
-	assert(addrlen);
 
 	return (memcmp(addr1p, addr2p, addrlen) == 0);
 }