summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/Makefile.in3
-rw-r--r--source3/nsswitch/wins.c13
2 files changed, 14 insertions, 2 deletions
diff --git a/source3/Makefile.in b/source3/Makefile.in
index 7ad6f6e64e..c73cba05b8 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -337,6 +337,9 @@ WINBIND_NSS_OBJ = nsswitch/winbind.o nsswitch/wb_common.o
WINBIND_NSS_PICOBJS = $(WINBIND_NSS_OBJ:.o=.po)
+NSS_OBJ_0 = nsswitch/wins.o $(PARAM_OBJ) $(UBIQX_OBJ) $(LIBSMB_OBJ) $(LIB_OBJ) $(NSSWINS_OBJ)
+NSS_OBJ = $(NSS_OBJ_0:.o=.po)
+
######################################################################
# now the rules...
######################################################################
diff --git a/source3/nsswitch/wins.c b/source3/nsswitch/wins.c
index ca0f22e3a6..6fbaedcdea 100644
--- a/source3/nsswitch/wins.c
+++ b/source3/nsswitch/wins.c
@@ -36,6 +36,7 @@ struct in_addr *lookup_backend(const char *name, int *count)
int fd;
static int initialised;
struct in_addr *ret;
+ char *p;
int j;
if (!initialised) {
@@ -55,8 +56,16 @@ struct in_addr *lookup_backend(const char *name, int *count)
set_socket_options(fd,"SO_BROADCAST");
- if( !zero_ip( wins_ip ) ) {
- ret = name_query( fd, name, 0x20, False, True, wins_src_ip(), count );
+/* The next four lines commented out by JHT
+ and replaced with the four lines following */
+/* if( !zero_ip( wins_ip ) ) {
+ * ret = name_query( fd, name, 0x20, False, True, wins_src_ip(), count );
+ * goto out;
+ * }
+ */
+ p = lp_wins_server();
+ if (p && *p) {
+ ret = name_query(fd,name,0x20,False,True, *interpret_addr2(p), count);
goto out;
}