From e054affb7bb3e2aa00663c2d4dfa04c19870ddaf Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Thu, 25 Oct 2007 19:07:25 -0700 Subject: Fix bug in writing names into gencache as well as 2 typos where AF_INET6 was mistypes as AF_INET. JERRY YOU NEED THESE FIXES. Fixes smbclient -L localhost -U% Bugs reported by Kukks (thanks kukks). Jeremy. (This used to be commit f109f82622ca30ae2360e8300152e90b9587ffd8) --- source3/lib/interface.c | 8 -------- source3/lib/util_sock.c | 4 ++-- source3/lib/util_str.c | 7 ++++--- 3 files changed, 6 insertions(+), 13 deletions(-) diff --git a/source3/lib/interface.c b/source3/lib/interface.c index 9d073bc08c..9627bf63dd 100644 --- a/source3/lib/interface.c +++ b/source3/lib/interface.c @@ -100,14 +100,6 @@ void setup_linklocal_scope_id(struct sockaddr_storage *pss) return; } } - for (i=local_interfaces;i;i=i->next) { - if (same_net(pss, &i->ip, &i->netmask)) { - struct sockaddr_in6 *psa6 = - (struct sockaddr_in6 *)pss; - psa6->sin6_scope_id = if_nametoindex(i->name); - return; - } - } } #endif diff --git a/source3/lib/util_sock.c b/source3/lib/util_sock.c index c30f21eeb7..80d4af8cdb 100644 --- a/source3/lib/util_sock.c +++ b/source3/lib/util_sock.c @@ -234,7 +234,7 @@ bool is_loopback_ip_v4(struct in_addr ip) bool is_loopback_addr(const struct sockaddr_storage *pss) { #if defined(HAVE_IPV6) - if (pss->ss_family == AF_INET) { + if (pss->ss_family == AF_INET6) { struct in6_addr *pin6 = &((struct sockaddr_in6 *)pss)->sin6_addr; return IN6_IS_ADDR_LOOPBACK(pin6); @@ -265,7 +265,7 @@ bool is_zero_ip_v4(struct in_addr ip) bool is_zero_addr(const struct sockaddr_storage *pss) { #if defined(HAVE_IPV6) - if (pss->ss_family == AF_INET) { + if (pss->ss_family == AF_INET6) { struct in6_addr *pin6 = &((struct sockaddr_in6 *)pss)->sin6_addr; return IN6_IS_ADDR_UNSPECIFIED(pin6); diff --git a/source3/lib/util_str.c b/source3/lib/util_str.c index 226bf826fb..1f3aab3bce 100644 --- a/source3/lib/util_str.c +++ b/source3/lib/util_str.c @@ -2280,11 +2280,12 @@ static char *ipstr_list_add(char **ipstr_list, const struct ip_service *service) return NULL; } + print_sockaddr(addr_buf, + sizeof(addr_buf), + &service->ss); + /* attempt to convert ip to a string and append colon separator to it */ if (*ipstr_list) { - print_sockaddr(addr_buf, - sizeof(addr_buf), - &service->ss); if (service->ss.ss_family == AF_INET) { /* IPv4 */ asprintf(&new_ipstr, "%s%s%s:%d", -- cgit