svn commit: samba r7735 - in branches/SAMBA_4_0/source/libcli/resolve: .

mimir at samba.org mimir at samba.org
Sat Jun 18 22:32:15 GMT 2005


Author: mimir
Date: 2005-06-18 22:32:14 +0000 (Sat, 18 Jun 2005)
New Revision: 7735

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=7735

Log:
Extend resolve_name function so that it's possible to pass resolve
methods explicitly or NULL for defaults saved in smb.conf.


rafal


Modified:
   branches/SAMBA_4_0/source/libcli/resolve/resolve.c


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/resolve/resolve.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/resolve/resolve.c	2005-06-18 22:29:41 UTC (rev 7734)
+++ branches/SAMBA_4_0/source/libcli/resolve/resolve.c	2005-06-18 22:32:14 UTC (rev 7735)
@@ -39,10 +39,11 @@
 	const char *name;
 	struct composite_context *(*send_fn)(struct nbt_name *, struct event_context *);
 	NTSTATUS (*recv_fn)(struct composite_context *, TALLOC_CTX *, const char **);
+
 } methods[] = {
-	{ "bcast", resolve_name_bcast_send, resolve_name_bcast_recv },
-	{ "wins",  resolve_name_wins_send, resolve_name_wins_recv },
-	{ "host",  resolve_name_host_send, resolve_name_host_recv }
+	{ "bcast", resolve_name_bcast_send,  resolve_name_bcast_recv },
+	{ "wins",  resolve_name_wins_send,   resolve_name_wins_recv },
+	{ "host",  resolve_name_host_send,   resolve_name_host_recv }
 };
 
 
@@ -115,7 +116,8 @@
 /*
   general name resolution - async send
  */
-struct composite_context *resolve_name_send(struct nbt_name *name, struct event_context *event_ctx)
+struct composite_context *resolve_name_send(struct nbt_name *name, struct event_context *event_ctx,
+					    const char **methods)
 {
 	struct composite_context *c;
 	struct resolve_state *state;
@@ -130,9 +132,15 @@
 	status = nbt_name_dup(state, name, &state->name);
 	if (!NT_STATUS_IS_OK(status)) goto failed;
 
-	state->methods = lp_name_resolve_order();
-	if (state->methods == NULL) {
-		return NULL;
+	/* use default methods from config file if not passed explicitly */
+	if (methods == NULL) {
+		state->methods = lp_name_resolve_order();
+		if (state->methods == NULL) {
+			return NULL;
+		}
+
+	} else {
+		state->methods = methods;
 	}
 
 	c->state = SMBCLI_REQUEST_SEND;
@@ -178,7 +186,7 @@
  */
 NTSTATUS resolve_name(struct nbt_name *name, TALLOC_CTX *mem_ctx, const char **reply_addr)
 {
-	struct composite_context *c = resolve_name_send(name, NULL);
+	struct composite_context *c = resolve_name_send(name, NULL, NULL);
 	return resolve_name_recv(c, mem_ctx, reply_addr);
 }
 



More information about the samba-cvs mailing list