When doing a name->addr translation to check for spoofing, give the
[rsync/rsync.git] / socket.c
index cf931ea..efdeecf 100644 (file)
--- a/socket.c
+++ b/socket.c
@@ -637,7 +637,7 @@ void client_sockaddr(int fd,
                     struct sockaddr_storage *ss,
                     socklen_t *ss_len)
 {
-       if (getpeername(fd, (struct sockaddr *)&ss, ss_len)) {
+       if (getpeername(fd, (struct sockaddr *) ss, ss_len)) {
                /* FIXME: Can we really not continue? */
                rprintf(FERROR, RSYNC_NAME ": getpeername on fd%d failed: %s\n",
                        fd, strerror(errno));
@@ -718,7 +718,7 @@ int check_name(int fd,
 
        memset(&hints, 0, sizeof(hints));
        hints.ai_family = PF_UNSPEC;
-       hints.ai_flags = AI_CANONNAME;
+       hints.ai_flags = get_sockaddr_family(ss);
        hints.ai_socktype = SOCK_STREAM;
        error = getaddrinfo(name_buf, port_buf, &hints, &res0);
        if (error) {