summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libc/net/net_addrcmp.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/lib/libc/net/net_addrcmp.c b/src/lib/libc/net/net_addrcmp.c
index 7d1a67ee08..a3ba89a681 100644
--- a/src/lib/libc/net/net_addrcmp.c
+++ b/src/lib/libc/net/net_addrcmp.c
@@ -10,6 +10,8 @@ net_addrcmp(sa1, sa2)
10 struct sockaddr *sa1; 10 struct sockaddr *sa1;
11 struct sockaddr *sa2; 11 struct sockaddr *sa2;
12{ 12{
13 int r;
14
13 if (sa1->sa_len != sa2->sa_len) 15 if (sa1->sa_len != sa2->sa_len)
14 return (sa1->sa_len < sa2->sa_len) ? -1 : 1; 16 return (sa1->sa_len < sa2->sa_len) ? -1 : 1;
15 if (sa1->sa_family != sa2->sa_family) 17 if (sa1->sa_family != sa2->sa_family)
@@ -21,11 +23,14 @@ net_addrcmp(sa1, sa2)
21 &((struct sockaddr_in *)sa2)->sin_addr, 23 &((struct sockaddr_in *)sa2)->sin_addr,
22 sizeof(struct in_addr))); 24 sizeof(struct in_addr)));
23 case AF_INET6: 25 case AF_INET6:
24 return (memcmp(&((struct sockaddr_in6 *)sa1)->sin6_addr, 26 if (((struct sockaddr_in6 *)sa1)->sin6_scope_id !=
27 ((struct sockaddr_in6 *)sa2)->sin6_scpoe_id)
28 return (((struct sockaddr_in6 *)sa1)->sin6_scope_id <
29 ((struct sockaddr_in6 *)sa2)->sin6_scpoe_id)
30 ? -1 : 1;
31 return memcmp(&((struct sockaddr_in6 *)sa1)->sin6_addr,
25 &((struct sockaddr_in6 *)sa2)->sin6_addr, 32 &((struct sockaddr_in6 *)sa2)->sin6_addr,
26 sizeof(struct in6_addr)) == 0 && 33 sizeof(struct in6_addr));
27 ((struct sockaddr_in6 *)sa1)->sin6_scope_id ==
28 ((struct sockaddr_in6 *)sa2)->sin6_scpoe_id);
29 case AF_NS: 34 case AF_NS:
30 return (memcmp(&((struct sockaddr_ns *)sa1)->sns_addr, 35 return (memcmp(&((struct sockaddr_ns *)sa1)->sns_addr,
31 &((struct sockaddr_ns *)sa2)->sns_addr, 36 &((struct sockaddr_ns *)sa2)->sns_addr,