Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
974f27e
)
compare_addrinfo_sockaddr: Add code to compare AF_INET6 addresses.
author
Martin Pool
<mbp@samba.org>
Fri, 25 Jan 2002 02:37:20 +0000
(
02:37
+0000)
committer
Martin Pool
<mbp@samba.org>
Fri, 25 Jan 2002 02:37:20 +0000
(
02:37
+0000)
clientname.c
patch
|
blob
|
blame
|
history
diff --git
a/clientname.c
b/clientname.c
index
41bdeda
..
f83eb8d
100644
(file)
--- a/
clientname.c
+++ b/
clientname.c
@@
-185,6
+185,7
@@
int compare_addrinfo_sockaddr(const struct addrinfo *ai,
{
int ss_family = get_sockaddr_family(ss);
const char fn[] = "compare_addrinfo_sockaddr";
{
int ss_family = get_sockaddr_family(ss);
const char fn[] = "compare_addrinfo_sockaddr";
+ size_t valid_len;
if (ai->ai_family != ss_family) {
rprintf(FERROR,
if (ai->ai_family != ss_family) {
rprintf(FERROR,
@@
-193,25
+194,21
@@
int compare_addrinfo_sockaddr(const struct addrinfo *ai,
return 1;
}
return 1;
}
- /* The comparison method depends on the particular AF. */
- if (ss_family == AF_INET) {
- const struct sockaddr_in *sin1, *sin2;
-
- sin1 = (const struct sockaddr_in *) ss;
- sin2 = (const struct sockaddr_in *) ai->ai_addr;
-
- return memcmp(sin1, sin2, sizeof *sin1);
- }
+ switch (ss_family) {
+ case AF_INET:
+ valid_len = sizeof (struct sockaddr_in);
+ break;
#ifdef INET6
#ifdef INET6
- else if (ss_family == AF_INET6) {
- /* XXXX */
- return 1;
- }
-#endif /* INET6 */
- else {
- /* don't know */
+ case AF_INET6:
+ valid_len = sizeof (struct sockaddr_in6);
+ break;
+#endif
+ default:
+ /* Don't know what to do! */
return 1;
}
return 1;
}
+
+ return memcmp(ss, ai->ai_addr, valid_len);
}
}