Add set_sockaddr_port function for winbindd.
authorJeremy Allison <jra@samba.org>
Wed, 21 Nov 2007 18:10:52 +0000 (10:10 -0800)
committerJeremy Allison <jra@samba.org>
Wed, 21 Nov 2007 18:10:52 +0000 (10:10 -0800)
Jeremy.
(This used to be commit 4b47052694285a1d1d313dfd61bd17011d62948d)

source3/lib/util_sock.c
source3/winbindd/winbindd_cm.c

index a59b1d5ef283fbbd3afe51ea15ec0edfffbbc1cb..f1a6d826e074bc0996c1b21b4f696bd3fb54e34e 100644 (file)
@@ -627,6 +627,19 @@ static int get_socket_port(int fd)
 }
 #endif
 
+void set_sockaddr_port(struct sockaddr_storage *psa, uint16 port)
+{
+#if defined(HAVE_IPV6)
+       if (psa->ss_family == AF_INET6) {
+               ((struct sockaddr_in6 *)psa)->sin6_port = htons(port);
+       }
+#else
+       if (psa->ss_family == AF_INET) {
+               ((struct sockaddr_in *)psa)->sin_port = htons(port);
+       }
+#endif
+}
+
 const char *client_name(int fd)
 {
        return get_peer_name(fd,false);
index 4c9ae0365fc730bee8d243d841b59be2ac4cd985..f8e76b0299a6b74be72bdb6494dc91f2ef0a0d7c 100644 (file)
@@ -923,6 +923,8 @@ static bool add_sockaddr_to_array(TALLOC_CTX *mem_ctx,
        }
 
        (*addrs)[*num] = *pss;
+       set_sockaddr_port(&(*addrs)[*num], port);
+
        *num += 1;
        return True;
 }