[SCM] Samba Shared Repository - branch master updated - fc31f2c5269fd405be96b9a036baf35a60141ccf

Stefan Metzmacher metze at samba.org
Thu Dec 18 12:33:49 GMT 2008


The branch, master has been updated
       via  fc31f2c5269fd405be96b9a036baf35a60141ccf (commit)
       via  4c2a113dd06ab2ba0b6faef781a7c21b4a2f3db0 (commit)
       via  4f5b8b68d550dd71c75f58e9895b585cc2155fc6 (commit)
       via  a60159c8734210d199b2b76705b4f70641395a2d (commit)
       via  9f8dfb0a52638d0f94024cfa50d3f0717857496e (commit)
       via  71b3582fe43c42c5e8f902957fd3e8d264bbbe5b (commit)
       via  0df30367306c5babf4787abc254cddb10aaff8c7 (commit)
       via  79351f75fee425fc4dd2f2d6dacd32908aa133b4 (commit)
      from  7a5b6a2ea194677c59ad6fab0aca3f102b5b2f46 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit fc31f2c5269fd405be96b9a036baf35a60141ccf
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 17 23:13:44 2008 +0100

    s4:lib/socket: socket_connect_send() and socket_connect_ev() should only wrok with addresses
    
    metze

commit 4c2a113dd06ab2ba0b6faef781a7c21b4a2f3db0
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Dec 18 00:09:17 2008 +0100

    s4:librpc/rpc: remove we should not redo the name resolving for secondary tcp connections
    
    metze

commit 4f5b8b68d550dd71c75f58e9895b585cc2155fc6
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 17 23:12:10 2008 +0100

    s4:libcli/wrepl: we don't need to resolve names
    
    metze

commit a60159c8734210d199b2b76705b4f70641395a2d
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 17 16:55:44 2008 +0100

    s4:libcli/replace: add some RESOLVE_NAME_FLAG* flags
    
    metze

commit 9f8dfb0a52638d0f94024cfa50d3f0717857496e
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Dec 18 01:02:25 2008 +0100

    s4:selftest: we pass raw.delete.delete21
    
    metze

commit 71b3582fe43c42c5e8f902957fd3e8d264bbbe5b
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Dec 18 01:00:47 2008 +0100

    s4:ntvfs_generic: pass RAW-OPEN again
    
    This is the samba4 version of commit
    9391dad85d08bb0939f4db1472c6cf063ebea892
    
    metze

commit 0df30367306c5babf4787abc254cddb10aaff8c7
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Dec 18 08:54:59 2008 +0100

    RAW-CHKPATH: not every server behaves like samba3...
    
    metze

commit 79351f75fee425fc4dd2f2d6dacd32908aa133b4
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Dec 18 07:49:41 2008 +0100

    BASE-LOCK: fix LOCK5
    
    We need to close all 3 file handle to make the unlink work.
    
    metze

-----------------------------------------------------------------------

Summary of changes:
 source4/auth/kerberos/krb5_init_context.c |    3 +-
 source4/lib/socket/connect.c              |   41 ++--------------------------
 source4/lib/socket/connect_multi.c        |    5 +---
 source4/lib/socket/socket.h               |    2 -
 source4/lib/socket/testsuite.c            |    2 +-
 source4/libcli/config.mk                  |    3 +-
 source4/libcli/ldap/ldap_client.c         |    2 +-
 source4/libcli/resolve/dns_ex.c           |   39 ++++++++++++++++-----------
 source4/libcli/resolve/host.c             |    2 +-
 source4/libcli/resolve/nbtlist.c          |   10 ++++++-
 source4/libcli/resolve/resolve.h          |   10 +++++++
 source4/libcli/wrepl/winsrepl.c           |    9 ++----
 source4/librpc/rpc/dcerpc_secondary.c     |   13 +++++++--
 source4/librpc/rpc/dcerpc_sock.c          |   13 +++------
 source4/ntvfs/ntvfs_generic.c             |    2 +
 source4/selftest/knownfail                |    1 -
 source4/torture/basic/locking.c           |   16 ++++++++---
 source4/torture/nbt/winsreplication.c     |   12 ++++----
 source4/torture/raw/chkpath.c             |    2 +-
 source4/wrepl_server/wrepl_out_helpers.c  |    1 -
 20 files changed, 89 insertions(+), 99 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/auth/kerberos/krb5_init_context.c b/source4/auth/kerberos/krb5_init_context.c
index 06db904..ac12a49 100644
--- a/source4/auth/kerberos/krb5_init_context.c
+++ b/source4/auth/kerberos/krb5_init_context.c
@@ -272,8 +272,7 @@ krb5_error_code smb_krb5_send_and_recv_func(krb5_context context,
 			continue;
 		}
 
-		status = socket_connect_ev(smb_krb5->sock, NULL, remote_addr, 0, 
-					   NULL, ev); 
+		status = socket_connect_ev(smb_krb5->sock, NULL, remote_addr, 0, ev);
 		if (!NT_STATUS_IS_OK(status)) {
 			talloc_free(smb_krb5);
 			continue;
diff --git a/source4/lib/socket/connect.c b/source4/lib/socket/connect.c
index 409e19e..d74a7b4 100644
--- a/source4/lib/socket/connect.c
+++ b/source4/lib/socket/connect.c
@@ -25,7 +25,6 @@
 #include "lib/socket/socket.h"
 #include "lib/events/events.h"
 #include "libcli/composite/composite.h"
-#include "libcli/resolve/resolve.h"
 
 
 struct connect_state {
@@ -38,7 +37,6 @@ struct connect_state {
 static void socket_connect_handler(struct event_context *ev,
 				   struct fd_event *fde, 
 				   uint16_t flags, void *private);
-static void continue_resolve_name(struct composite_context *ctx);
 
 /*
   call the real socket_connect() call, and setup event handler
@@ -75,16 +73,13 @@ struct composite_context *socket_connect_send(struct socket_context *sock,
 					      struct socket_address *my_address,
 					      struct socket_address *server_address, 
 					      uint32_t flags,
-					      struct resolve_context *resolve_ctx,
 					      struct event_context *event_ctx)
 {
 	struct composite_context *result;
 	struct connect_state *state;
 
-	result = talloc_zero(sock, struct composite_context);
+	result = composite_create(sock, event_ctx);
 	if (result == NULL) return NULL;
-	result->state = COMPOSITE_STATE_IN_PROGRESS;
-	result->event_ctx = event_ctx;
 
 	state = talloc_zero(result, struct connect_state);
 	if (composite_nomem(state, result)) return result;
@@ -113,16 +108,6 @@ struct composite_context *socket_connect_send(struct socket_context *sock,
 
 	set_blocking(socket_get_fd(sock), false);
 
-	if (resolve_ctx != NULL && server_address->addr && strcmp(sock->backend_name, "ipv4") == 0) {
-		struct nbt_name name;
-		struct composite_context *creq;
-		make_nbt_name_server(&name, server_address->addr);
-		creq = resolve_name_send(resolve_ctx, &name, result->event_ctx);
-		if (composite_nomem(creq, result)) return result;
-		composite_continue(result, creq, continue_resolve_name, result);
-		return result;
-	}
-
 	socket_send_connect(result);
 
 	return result;
@@ -147,26 +132,6 @@ static void socket_connect_handler(struct event_context *ev,
 }
 
 /*
-  recv name resolution reply then send the connect
-*/
-static void continue_resolve_name(struct composite_context *creq)
-{
-	struct composite_context *result = talloc_get_type(creq->async.private_data, 
-							   struct composite_context);
-	struct connect_state *state = talloc_get_type(result->private_data, struct connect_state);
-	const char *addr;
-
-	result->status = resolve_name_recv(creq, state, &addr);
-	if (!composite_is_ok(result)) return;
-
-	state->server_address = socket_address_from_strings(state, state->sock->backend_name,
-							    addr, state->server_address->port);
-	if (composite_nomem(state->server_address, result)) return;
-
-	socket_send_connect(result);
-}
-
-/*
   wait for a socket_connect_send() to finish
 */
 NTSTATUS socket_connect_recv(struct composite_context *result)
@@ -183,11 +148,11 @@ NTSTATUS socket_connect_recv(struct composite_context *result)
 NTSTATUS socket_connect_ev(struct socket_context *sock,
 			   struct socket_address *my_address,
 			   struct socket_address *server_address, 
-			   uint32_t flags, struct resolve_context *resolve_ctx,
+			   uint32_t flags,
 			   struct event_context *ev)
 {
 	struct composite_context *ctx;
 	ctx = socket_connect_send(sock, my_address, 
-				  server_address, flags, resolve_ctx, ev);
+				  server_address, flags, ev);
 	return socket_connect_recv(ctx);
 }
diff --git a/source4/lib/socket/connect_multi.c b/source4/lib/socket/connect_multi.c
index ad8637a..14c475d 100644
--- a/source4/lib/socket/connect_multi.c
+++ b/source4/lib/socket/connect_multi.c
@@ -37,8 +37,6 @@ struct connect_multi_state {
 	int num_ports;
 	uint16_t *ports;
 
-	struct resolve_context *resolve_ctx;
-
 	struct socket_context *sock;
 	uint16_t result_port;
 
@@ -89,7 +87,6 @@ _PUBLIC_ struct composite_context *socket_connect_multi_send(
 	if (composite_nomem(multi->server_address, result)) goto failed;
 
 	multi->num_ports = num_server_ports;
-	multi->resolve_ctx = talloc_reference(multi, resolve_ctx);
 	multi->ports = talloc_array(multi, uint16_t, multi->num_ports);
 	if (composite_nomem(multi->ports, result)) goto failed;
 
@@ -159,7 +156,7 @@ static void connect_multi_next_socket(struct composite_context *result)
 	talloc_steal(state, state->sock);
 
 	creq = socket_connect_send(state->sock, NULL, 
-				   state->addr, 0, multi->resolve_ctx, 
+				   state->addr, 0,
 				   result->event_ctx);
 	if (composite_nomem(creq, result)) return;
 	talloc_steal(state, creq);
diff --git a/source4/lib/socket/socket.h b/source4/lib/socket/socket.h
index 8b1b65d..4741a67 100644
--- a/source4/lib/socket/socket.h
+++ b/source4/lib/socket/socket.h
@@ -178,14 +178,12 @@ struct composite_context *socket_connect_send(struct socket_context *sock,
 					      struct socket_address *my_address,
 					      struct socket_address *server_address, 
 					      uint32_t flags,
-				              struct resolve_context *resolve_ctx,
 					      struct event_context *event_ctx);
 NTSTATUS socket_connect_recv(struct composite_context *ctx);
 NTSTATUS socket_connect_ev(struct socket_context *sock,
 			   struct socket_address *my_address,
 			   struct socket_address *server_address, 
 			   uint32_t flags, 
-			   struct resolve_context *resolve_ctx,
 			   struct event_context *ev);
 
 struct composite_context *socket_connect_multi_send(TALLOC_CTX *mem_ctx,
diff --git a/source4/lib/socket/testsuite.c b/source4/lib/socket/testsuite.c
index 2c25d8f..0fae880 100644
--- a/source4/lib/socket/testsuite.c
+++ b/source4/lib/socket/testsuite.c
@@ -152,7 +152,7 @@ static bool test_tcp(struct torture_context *tctx)
 
 	torture_comment(tctx, "server port is %d\n", srv_addr->port);
 
-	status = socket_connect_ev(sock2, NULL, srv_addr, 0, NULL, ev);
+	status = socket_connect_ev(sock2, NULL, srv_addr, 0, ev);
 	torture_assert_ntstatus_ok(tctx, status, "connect() on socket 2");
 
 	status = socket_accept(sock1, &sock3);
diff --git a/source4/libcli/config.mk b/source4/libcli/config.mk
index b60cda9..85cba42 100644
--- a/source4/libcli/config.mk
+++ b/source4/libcli/config.mk
@@ -117,8 +117,7 @@ LIBCLI_CLDAP_OBJ_FILES = $(libclisrcdir)/cldap/cldap.o
 # PUBLIC_HEADERS += $(libclisrcdir)/cldap/cldap.h
 
 [SUBSYSTEM::LIBCLI_WREPL]
-PUBLIC_DEPENDENCIES = NDR_WINSREPL samba-socket LIBCLI_RESOLVE LIBEVENTS \
-					  LIBPACKET LIBNDR
+PUBLIC_DEPENDENCIES = NDR_WINSREPL samba-socket LIBEVENTS LIBPACKET
 
 LIBCLI_WREPL_OBJ_FILES = $(libclisrcdir)/wrepl/winsrepl.o
 
diff --git a/source4/libcli/ldap/ldap_client.c b/source4/libcli/ldap/ldap_client.c
index 7f43e16..082f6fa 100644
--- a/source4/libcli/ldap/ldap_client.c
+++ b/source4/libcli/ldap/ldap_client.c
@@ -358,7 +358,7 @@ _PUBLIC_ struct composite_context *ldap_connect_send(struct ldap_connection *con
 		}
 
 		ctx = socket_connect_send(conn->sock, NULL, unix_addr, 
-					  0, lp_resolve_context(conn->lp_ctx), conn->event.event_ctx);
+					  0, conn->event.event_ctx);
 		ctx->async.fn = ldap_connect_recv_unix_conn;
 		ctx->async.private_data = state;
 		return result;
diff --git a/source4/libcli/resolve/dns_ex.c b/source4/libcli/resolve/dns_ex.c
index 5f08201..948ad9f 100644
--- a/source4/libcli/resolve/dns_ex.c
+++ b/source4/libcli/resolve/dns_ex.c
@@ -40,9 +40,7 @@
 #include "heimdal/lib/roken/resolve.h"
 
 struct dns_ex_state {
-	bool do_getaddrinfo;
 	bool do_fallback;
-	bool do_srv;
 	uint32_t flags;
 	uint16_t port;
 	struct nbt_name name;
@@ -88,15 +86,16 @@ static void run_child_dns_lookup(struct dns_ex_state *state, int fd)
 	char *addrs;
 	bool first;
 	uint32_t i;
+	bool do_srv = (state->flags & RESOLVE_NAME_FLAG_DNS_SRV);
 
 	/* this is the blocking call we are going to lots of trouble
 	   to avoid in the parent */
-	reply = dns_lookup(state->name.name, state->do_srv?"SRV":"A");
+	reply = dns_lookup(state->name.name, do_srv?"SRV":"A");
 	if (!reply) {
 		goto done;
 	}
 
-	if (state->do_srv) {
+	if (do_srv) {
 		dns_srv_order(reply);
 	}
 
@@ -107,7 +106,7 @@ static void run_child_dns_lookup(struct dns_ex_state *state, int fd)
 			continue;
 		}
 
-		if (state->do_srv) {
+		if (do_srv) {
 			/* we are only interested in SRV records */
 			if (rr->type != T_SRV) {
 				continue;
@@ -162,7 +161,7 @@ static void run_child_dns_lookup(struct dns_ex_state *state, int fd)
 			continue;
 		}
 
-		if (state->do_srv) {
+		if (do_srv) {
 			/* we are only interested in SRV records */
 			if (rr->type != T_SRV) {
 				continue;
@@ -230,13 +229,22 @@ static void run_child_dns_lookup(struct dns_ex_state *state, int fd)
 	}
 	first = true;
 	for (i=0; i < count; i++) {
+		uint16_t port;
 		if (!addrs_rr[i]) {
 			continue;
 		}
+
+		if (srv_rr[i] &&
+		    (state->flags & RESOLVE_NAME_FLAG_OVERWRITE_PORT)) {
+			port = srv_rr[i]->u.srv->port;
+		} else {
+			port = state->port;
+		}
+
 		addrs = talloc_asprintf_append_buffer(addrs, "%s%s:%u/%s",
 						      first?"":",",
 						      inet_ntoa(*addrs_rr[i]->u.a),
-						      state->port,
+						      port,
 						      addrs_rr[i]->domain);
 		if (!addrs) {
 			goto done;
@@ -429,9 +437,7 @@ struct composite_context *resolve_name_dns_ex_send(TALLOC_CTX *mem_ctx,
 						   uint32_t flags,
 						   uint16_t port,
 						   struct nbt_name *name,
-						   bool do_getaddrinfo,
-						   bool do_fallback,
-						   bool do_srv)
+						   bool do_fallback)
 {
 	struct composite_context *c;
 	struct dns_ex_state *state;
@@ -441,7 +447,10 @@ struct composite_context *resolve_name_dns_ex_send(TALLOC_CTX *mem_ctx,
 	c = composite_create(mem_ctx, event_ctx);
 	if (c == NULL) return NULL;
 
-	if (composite_nomem(c->event_ctx, c)) return c;
+	if (flags & RESOLVE_NAME_FLAG_FORCE_NBT) {
+		composite_error(c, NT_STATUS_OBJECT_NAME_NOT_FOUND);
+		return c;
+	}
 
 	state = talloc_zero(c, struct dns_ex_state);
 	if (composite_nomem(state, c)) return c;
@@ -457,9 +466,7 @@ struct composite_context *resolve_name_dns_ex_send(TALLOC_CTX *mem_ctx,
 		return c;
 	}
 
-	state->do_getaddrinfo = do_getaddrinfo;
 	state->do_fallback = do_fallback;
-	state->do_srv = do_srv;
 	state->flags = flags;
 	state->port = port;
 
@@ -484,10 +491,10 @@ struct composite_context *resolve_name_dns_ex_send(TALLOC_CTX *mem_ctx,
 
 	if (state->child == 0) {
 		close(fd[0]);
-		if (state->do_getaddrinfo) {
-			run_child_getaddrinfo(state, fd[1]);
-		} else {
+		if (state->flags & RESOLVE_NAME_FLAG_FORCE_DNS) {
 			run_child_dns_lookup(state, fd[1]);
+		} else {
+			run_child_getaddrinfo(state, fd[1]);
 		}
 		_exit(0);
 	}
diff --git a/source4/libcli/resolve/host.c b/source4/libcli/resolve/host.c
index 908d173..b7eaf4b 100644
--- a/source4/libcli/resolve/host.c
+++ b/source4/libcli/resolve/host.c
@@ -39,7 +39,7 @@ struct composite_context *resolve_name_host_send(TALLOC_CTX *mem_ctx,
 						 struct nbt_name *name)
 {
 	return resolve_name_dns_ex_send(mem_ctx, event_ctx, NULL, flags,
-					port, name, true, true, false);
+					port, name, true);
 }
 
 /*
diff --git a/source4/libcli/resolve/nbtlist.c b/source4/libcli/resolve/nbtlist.c
index 2c128e2..734fd5a 100644
--- a/source4/libcli/resolve/nbtlist.c
+++ b/source4/libcli/resolve/nbtlist.c
@@ -125,7 +125,15 @@ struct composite_context *resolve_name_nbtlist_send(TALLOC_CTX *mem_ctx,
 	c = composite_create(mem_ctx, event_ctx);
 	if (c == NULL) return NULL;
 
-	if (composite_nomem(c->event_ctx, c)) return c;
+	if (flags & RESOLVE_NAME_FLAG_FORCE_DNS) {
+		composite_error(c, NT_STATUS_OBJECT_NAME_NOT_FOUND);
+		return c;
+	}
+
+	if (strlen(name->name) > 15) {
+		composite_error(c, NT_STATUS_OBJECT_NAME_NOT_FOUND);
+		return c;
+	}
 
 	state = talloc(c, struct nbtlist_state);
 	if (composite_nomem(state, c)) return c;
diff --git a/source4/libcli/resolve/resolve.h b/source4/libcli/resolve/resolve.h
index 072a8a1..b55ab83 100644
--- a/source4/libcli/resolve/resolve.h
+++ b/source4/libcli/resolve/resolve.h
@@ -26,6 +26,16 @@ struct socket_address;
 struct event_context;
 
 #include "../libcli/nbt/libnbt.h"
+
+/* force that only NBT name resolution is used */
+#define RESOLVE_NAME_FLAG_FORCE_NBT		0x00000001
+/* force that only DNS name resolution is used */
+#define RESOLVE_NAME_FLAG_FORCE_DNS		0x00000002
+/* tell the dns resolver to do a DNS SRV lookup */
+#define RESOLVE_NAME_FLAG_DNS_SRV		0x00000004
+/* allow the resolver to overwrite the given port, e.g. for DNS SRV */
+#define RESOLVE_NAME_FLAG_OVERWRITE_PORT	0x00000008
+
 typedef struct composite_context *(*resolve_name_send_fn)(TALLOC_CTX *mem_ctx,
 							  struct event_context *,
 							  void *privdata,
diff --git a/source4/libcli/wrepl/winsrepl.c b/source4/libcli/wrepl/winsrepl.c
index 84bda8c..930616d 100644
--- a/source4/libcli/wrepl/winsrepl.c
+++ b/source4/libcli/wrepl/winsrepl.c
@@ -30,7 +30,6 @@
 #include "system/network.h"
 #include "lib/socket/netif.h"
 #include "param/param.h"
-#include "libcli/resolve/resolve.h"
 
 static struct wrepl_request *wrepl_request_finished(struct wrepl_request *req, NTSTATUS status);
 
@@ -319,7 +318,6 @@ const char *wrepl_best_ip(struct loadparm_context *lp_ctx, const char *peer_ip)
   connect a wrepl_socket to a WINS server
 */
 struct composite_context *wrepl_connect_send(struct wrepl_socket *wrepl_socket,
-					     struct resolve_context *resolve_ctx,
 					     const char *our_ip, const char *peer_ip)
 {
 	struct composite_context *result;
@@ -347,8 +345,7 @@ struct composite_context *wrepl_connect_send(struct wrepl_socket *wrepl_socket,
 	if (composite_nomem(peer, result)) return result;
 
 	state->creq = socket_connect_send(wrepl_socket->sock, us, peer,
-					  0, resolve_ctx,
-					  wrepl_socket->event.ctx);
+					  0, wrepl_socket->event.ctx);
 	composite_continue(result, state->creq, wrepl_connect_handler, state);
 	return result;
 }
@@ -374,10 +371,10 @@ NTSTATUS wrepl_connect_recv(struct composite_context *result)
 /*
   connect a wrepl_socket to a WINS server - sync API
 */
-NTSTATUS wrepl_connect(struct wrepl_socket *wrepl_socket, struct resolve_context *resolve_ctx,
+NTSTATUS wrepl_connect(struct wrepl_socket *wrepl_socket,
 		       const char *our_ip, const char *peer_ip)
 {
-	struct composite_context *c_req = wrepl_connect_send(wrepl_socket, resolve_ctx, our_ip, peer_ip);
+	struct composite_context *c_req = wrepl_connect_send(wrepl_socket, our_ip, peer_ip);
 	return wrepl_connect_recv(c_req);
 }
 
diff --git a/source4/librpc/rpc/dcerpc_secondary.c b/source4/librpc/rpc/dcerpc_secondary.c
index 8ac235c..1d76c65 100644
--- a/source4/librpc/rpc/dcerpc_secondary.c
+++ b/source4/librpc/rpc/dcerpc_secondary.c
@@ -31,13 +31,14 @@
 #include "auth/credentials/credentials.h"
 #include "param/param.h"
 #include "libcli/resolve/resolve.h"
-
+#include "lib/socket/socket.h"
 
 struct sec_conn_state {
 	struct dcerpc_pipe *pipe;
 	struct dcerpc_pipe *pipe2;
 	struct dcerpc_binding *binding;
 	struct smbcli_tree *tree;
+	struct socket_address *peer_addr;
 };
 
 
@@ -94,11 +95,17 @@ _PUBLIC_ struct composite_context* dcerpc_secondary_connection_send(struct dcerp
 		return c;
 
 	case NCACN_IP_TCP:
+		s->peer_addr = dcerpc_socket_peer_addr(s->pipe->conn, s);
+		if (!s->peer_addr) {
+			composite_error(c, NT_STATUS_INVALID_PARAMETER);
+			return c;
+		}
+
 		pipe_tcp_req = dcerpc_pipe_open_tcp_send(s->pipe2->conn,
-							 s->binding->host,
+							 s->peer_addr->addr,
 							 s->binding->target_hostname,
 							 atoi(s->binding->endpoint),
-							 dcerpc_resolve_ctx(s->pipe->conn));
+							 resolve_context_init(s));
 		composite_continue(c, pipe_tcp_req, continue_open_tcp, c);
 		return c;
 
diff --git a/source4/librpc/rpc/dcerpc_sock.c b/source4/librpc/rpc/dcerpc_sock.c
index 548f270..3cc8421 100644
--- a/source4/librpc/rpc/dcerpc_sock.c
+++ b/source4/librpc/rpc/dcerpc_sock.c
@@ -39,7 +39,6 @@ struct sock_private {
 	struct packet_context *packet;
 	uint32_t pending_reads;
 
-	struct resolve_context *resolve_ctx;
 	const char *path; /* For ncacn_unix_sock and ncalrpc */
 };
 
@@ -306,7 +305,6 @@ static void continue_socket_connect(struct composite_context *ctx)
 
 static struct composite_context *dcerpc_pipe_open_socket_send(TALLOC_CTX *mem_ctx,
 						       struct dcerpc_connection *cn,
-						       struct resolve_context *resolve_context,
 						       struct socket_address *server,
 						       const char *target_hostname,
 						       const char *full_path,
@@ -337,11 +335,9 @@ static struct composite_context *dcerpc_pipe_open_socket_send(TALLOC_CTX *mem_ct
 
 	talloc_steal(s->sock, s->socket_ctx);
 
-	s->sock->resolve_ctx = resolve_context;
 	s->sock->path = talloc_reference(s->sock, full_path);
 
 	conn_req = socket_connect_send(s->socket_ctx, NULL, s->server, 0, 
-				       resolve_context, 
 				       c->event_ctx);
 	composite_continue(c, conn_req, continue_socket_connect, c);
 	return c;
@@ -390,7 +386,6 @@ static void continue_ip_resolve_name(struct composite_context *ctx)
 
 	/* resolve_nbt_name gives only ipv4 ... - send socket open request */
 	sock_ipv4_req = dcerpc_pipe_open_socket_send(c, s->conn,
-						     s->resolve_ctx,
 						     s->srvaddr, s->target_hostname,
 						     NULL,
 						     NCACN_IP_TCP);
@@ -566,7 +561,6 @@ struct composite_context *dcerpc_pipe_open_unix_stream_send(struct dcerpc_connec


-- 
Samba Shared Repository


More information about the samba-cvs mailing list