diff options
author | itojun <> | 2001-08-07 00:51:23 +0000 |
---|---|---|
committer | itojun <> | 2001-08-07 00:51:23 +0000 |
commit | f71b57afacc8526d84d021a178c54d674e8ad2a7 (patch) | |
tree | b4d17cfa7434225ae988bdfe812a6f9784cac0af | |
parent | 6dd4c621d174e551ba824d6b558669360a0e89a3 (diff) | |
download | openbsd-f71b57afacc8526d84d021a178c54d674e8ad2a7.tar.gz openbsd-f71b57afacc8526d84d021a178c54d674e8ad2a7.tar.bz2 openbsd-f71b57afacc8526d84d021a178c54d674e8ad2a7.zip |
sorry, correct the polarity of return value on AF_INET6.
-rw-r--r-- | src/lib/libc/net/net_addrcmp.c | 13 |
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, |