From 8e54530b52fd256137740107e9fdf000f00a7a30 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 10 Oct 2007 18:25:16 -0700 Subject: Add start of IPv6 implementation. Currently most of this is avoiding IPv6 in winbindd, but moves most of the socket functions that were wrongly in lib/util.c into lib/util_sock.c and provides generic IPv4/6 independent versions of most things. Still lots of work to do, but now I can see how I'll fix the access check code. Nasty part that remains is the name resolution code which is used to returning arrays of in_addr structs. Jeremy. (This used to be commit 3f6bd0e1ec5cc6670f3d08f76fc2cd94c9cd1a08) --- source3/winbindd/winbindd_cm.c | 4 ++-- source3/winbindd/winbindd_wins.c | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'source3/winbindd') diff --git a/source3/winbindd/winbindd_cm.c b/source3/winbindd/winbindd_cm.c index e12b13cbbd..4ff9fce96f 100644 --- a/source3/winbindd/winbindd_cm.c +++ b/source3/winbindd/winbindd_cm.c @@ -1292,7 +1292,7 @@ static BOOL find_new_dc(TALLOC_CTX *mem_ctx, *addr = addrs[fd_index]; - if (*dcnames[fd_index] != '\0' && !is_ipaddress(dcnames[fd_index])) { + if (*dcnames[fd_index] != '\0' && !is_ipaddress_v4(dcnames[fd_index])) { /* Ok, we've got a name for the DC */ fstrcpy(dcname, dcnames[fd_index]); return True; @@ -1336,7 +1336,7 @@ static NTSTATUS cm_open_connection(struct winbindd_domain *domain, saf_servername, domain->name )); /* convert an ip address to a name */ - if ( is_ipaddress( saf_servername ) ) { + if ( is_ipaddress_v4( saf_servername ) ) { fstring saf_name; struct in_addr ip; diff --git a/source3/winbindd/winbindd_wins.c b/source3/winbindd/winbindd_wins.c index f84dfdf2de..2ee6f69b66 100644 --- a/source3/winbindd/winbindd_wins.c +++ b/source3/winbindd/winbindd_wins.c @@ -118,7 +118,10 @@ static struct in_addr *lookup_byname_backend(const char *name, int *count) for (j=iface_count() - 1; j >= 0; j--) { - struct in_addr *bcast = iface_n_bcast(j); + const struct in_addr *bcast = iface_n_bcast_v4(j); + if (!bcast) { + continue; + } return_ip = name_query(fd,name,0x20,True,True,*bcast,count, &flags, NULL); if (return_ip) { break; -- cgit