svn commit: samba r12001 - in branches/SAMBA_4_0/source/librpc/rpc: .

mimir at samba.org mimir at samba.org
Thu Dec 1 22:43:31 GMT 2005


Author: mimir
Date: 2005-12-01 22:43:30 +0000 (Thu, 01 Dec 2005)
New Revision: 12001

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

Log:
Replace smbcli_full_connection call with composite connect used
in sync version. This step makes it easer to move further to async
dcerpc connect routine.


rafal


Modified:
   branches/SAMBA_4_0/source/librpc/rpc/dcerpc_util.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/rpc/dcerpc_util.c
===================================================================
--- branches/SAMBA_4_0/source/librpc/rpc/dcerpc_util.c	2005-12-01 22:18:34 UTC (rev 12000)
+++ branches/SAMBA_4_0/source/librpc/rpc/dcerpc_util.c	2005-12-01 22:43:30 UTC (rev 12001)
@@ -27,6 +27,8 @@
 #include "librpc/gen_ndr/ndr_epmapper.h"
 #include "librpc/gen_ndr/ndr_dcerpc.h"
 #include "librpc/gen_ndr/ndr_misc.h"
+#include "libcli/raw/libcliraw.h"
+#include "libcli/smb_composite/smb_composite.h"
 
 /*
   find the pipe name for a local IDL interface
@@ -1023,29 +1025,44 @@
 						 struct cli_credentials *credentials)
 {
 	NTSTATUS status;
+	struct smb_composite_connect conn;
 	struct smbcli_state *cli;
 	const char *pipe_name = NULL;
 
+	conn.in.dest_host              = binding->host;
+	conn.in.port                   = 0;
+	conn.in.called_name            = strupper_talloc(tmp_ctx, binding->host);
+	conn.in.service                = "IPC$";
+	conn.in.service_type           = NULL;
+	conn.in.fallback_to_anonymous  = False;
+	conn.in.workgroup              = lp_workgroup();
+
 	if (binding->flags & DCERPC_SCHANNEL) {
 		struct cli_credentials *anon_creds
 			= cli_credentials_init(tmp_ctx);
 		cli_credentials_set_anonymous(anon_creds);
 		cli_credentials_guess(anon_creds);
-		status = smbcli_full_connection(p->conn, &cli, 
-						binding->host, 
-						"IPC$", NULL, 
-						anon_creds, p->conn->event_ctx);
+
+		conn.in.credentials = anon_creds;
+		status = smb_composite_connect(&conn, p->conn, p->conn->event_ctx);
+
 	} else {
-		status = smbcli_full_connection(p->conn, &cli, 
-						binding->host, 
-						"IPC$", NULL,
-						credentials, p->conn->event_ctx);
+
+		conn.in.credentials = credentials;
+		status = smb_composite_connect(&conn, p->conn, p->conn->event_ctx);
+
 	}
+
 	if (!NT_STATUS_IS_OK(status)) {
 		DEBUG(0,("Failed to connect to %s - %s\n", binding->host, nt_errstr(status)));
 		return status;
 	}
 
+	cli = smbcli_state_init(p->conn);
+	cli->tree      = conn.out.tree;
+	cli->session   = conn.out.tree->session;
+	cli->transport = conn.out.tree->session->transport;
+
 	pipe_name = binding->endpoint;
 
 	status = dcerpc_pipe_open_smb(p->conn, cli->tree, pipe_name);



More information about the samba-cvs mailing list