summaryrefslogtreecommitdiff
path: root/source3/nsswitch
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2003-06-28 08:24:32 +0000
committerGerald Carter <jerry@samba.org>2003-06-28 08:24:32 +0000
commitb2fbc05c6bfd92354c8970c66581a32daaf6e6a3 (patch)
tree7eef0ae9b8e2322e5bdd5bd022827c68d477dfe5 /source3/nsswitch
parent0e983b32fd309de24b923a5c4928635c6c03e89f (diff)
downloadsamba-b2fbc05c6bfd92354c8970c66581a32daaf6e6a3.tar.gz
samba-b2fbc05c6bfd92354c8970c66581a32daaf6e6a3.tar.bz2
samba-b2fbc05c6bfd92354c8970c66581a32daaf6e6a3.zip
cleaning up after the s/in_addr/ip_service/ switch for the get_dc_list() patch
(This used to be commit 303fdc516c79b170d7c12fe2f6264d9636673347)
Diffstat (limited to 'source3/nsswitch')
-rw-r--r--source3/nsswitch/winbindd_wins.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/source3/nsswitch/winbindd_wins.c b/source3/nsswitch/winbindd_wins.c
index a1d38ed69a..66903e250d 100644
--- a/source3/nsswitch/winbindd_wins.c
+++ b/source3/nsswitch/winbindd_wins.c
@@ -86,14 +86,26 @@ static struct node_status *lookup_byaddr_backend(char *addr, int *count)
static struct in_addr *lookup_byname_backend(const char *name, int *count)
{
int fd;
- struct in_addr *ret = NULL;
- int j, flags = 0;
+ struct ip_service *ret = NULL;
+ struct in_addr *return_ip;
+ int j, i, flags = 0;
*count = 0;
/* always try with wins first */
if (resolve_wins(name,0x20,&ret,count)) {
- return ret;
+ if ( count == 0 )
+ return NULL;
+ if ( (return_ip = (struct in_addr *)malloc((*count)*sizeof(struct in_addr))) == NULL ) {
+ free( ret );
+ return NULL;
+ }
+
+ /* copy the IP addresses */
+ for ( i=0; i<(*count); i++ )
+ return_ip[i] = ret[i].ip;
+
+ return return_ip;
}
fd = wins_lookup_open_socket_in();
@@ -106,12 +118,12 @@ static struct in_addr *lookup_byname_backend(const char *name, int *count)
j >= 0;
j--) {
struct in_addr *bcast = iface_n_bcast(j);
- ret = name_query(fd,name,0x20,True,True,*bcast,count, &flags, NULL);
- if (ret) break;
+ return_ip = name_query(fd,name,0x20,True,True,*bcast,count, &flags, NULL);
+ if (return_ip) break;
}
close(fd);
- return ret;
+ return return_ip;
}
/* Get hostname from IP */