summaryrefslogtreecommitdiff
path: root/source4/libcli/resolve/wins.c
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2007-12-10 18:41:19 +0100
committerStefan Metzmacher <metze@samba.org>2007-12-21 05:49:12 +0100
commit5f4842cf65ce64bfdf577cd549565da20ca818cf (patch)
tree65f9cb14c5910e70bc0fb64f45c7ffa5e382692f /source4/libcli/resolve/wins.c
parenteba25f5d1897fbe61e8d7c623fcacb647629bf07 (diff)
downloadsamba-5f4842cf65ce64bfdf577cd549565da20ca818cf.tar.gz
samba-5f4842cf65ce64bfdf577cd549565da20ca818cf.tar.bz2
samba-5f4842cf65ce64bfdf577cd549565da20ca818cf.zip
r26376: Add context for libcli_resolve.
(This used to be commit 459e1466a411d6f83b7372e248566e6e71c745fc)
Diffstat (limited to 'source4/libcli/resolve/wins.c')
-rw-r--r--source4/libcli/resolve/wins.c26
1 files changed, 21 insertions, 5 deletions
diff --git a/source4/libcli/resolve/wins.c b/source4/libcli/resolve/wins.c
index 2cbcd5f483..73b9413eb4 100644
--- a/source4/libcli/resolve/wins.c
+++ b/source4/libcli/resolve/wins.c
@@ -24,17 +24,22 @@
#include "libcli/resolve/resolve.h"
#include "param/param.h"
-/*
+struct resolve_wins_data {
+ const char **address_list;
+};
+
+/**
wins name resolution method - async send
*/
struct composite_context *resolve_name_wins_send(
TALLOC_CTX *mem_ctx,
struct event_context *event_ctx,
+ void *userdata,
struct nbt_name *name)
{
- const char **address_list = lp_wins_server_list(global_loadparm);
- if (address_list == NULL) return NULL;
- return resolve_name_nbtlist_send(mem_ctx, event_ctx, name, address_list, false, true);
+ struct resolve_wins_data *wins_data = talloc_get_type(userdata, struct resolve_wins_data);
+ if (wins_data->address_list == NULL) return NULL;
+ return resolve_name_nbtlist_send(mem_ctx, event_ctx, name, wins_data->address_list, false, true);
}
/*
@@ -51,9 +56,20 @@ NTSTATUS resolve_name_wins_recv(struct composite_context *c,
*/
NTSTATUS resolve_name_wins(struct nbt_name *name,
TALLOC_CTX *mem_ctx,
+ const char **address_list,
const char **reply_addr)
{
- struct composite_context *c = resolve_name_wins_send(mem_ctx, NULL, name);
+ struct composite_context *c;
+ struct resolve_wins_data *wins_data = talloc(mem_ctx, struct resolve_wins_data);
+ wins_data->address_list = address_list;
+ c = resolve_name_wins_send(mem_ctx, NULL, wins_data, name);
return resolve_name_wins_recv(c, mem_ctx, reply_addr);
}
+bool resolve_context_add_wins_method(struct resolve_context *ctx, const char **address_list)
+{
+ struct resolve_wins_data *wins_data = talloc(ctx, struct resolve_wins_data);
+ wins_data->address_list = str_list_copy(wins_data, address_list);
+ return resolve_context_add_method(ctx, resolve_name_wins_send, resolve_name_wins_recv,
+ wins_data);
+}