summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2007-10-25 19:07:25 -0700
committerJeremy Allison <jra@samba.org>2007-10-25 19:07:25 -0700
commite054affb7bb3e2aa00663c2d4dfa04c19870ddaf (patch)
tree6f0e23e2314ff7aa8300a273152e311d713a6346
parent6128d116b3f09ce0b055d2df89b2f7282185782e (diff)
downloadsamba-e054affb7bb3e2aa00663c2d4dfa04c19870ddaf.tar.gz
samba-e054affb7bb3e2aa00663c2d4dfa04c19870ddaf.tar.bz2
samba-e054affb7bb3e2aa00663c2d4dfa04c19870ddaf.zip
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)
-rw-r--r--source3/lib/interface.c8
-rw-r--r--source3/lib/util_sock.c4
-rw-r--r--source3/lib/util_str.c7
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",