From 13b36be68fb54d8e993aefe7b8b5e53f7316a126 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 15 Jan 2014 13:06:20 +0100 Subject: s4:librpc/rpc: allow a shortcut in dcerpc_pipe_connect_ncacn_np_smb[2]_send() If the caller provided smbXcli * pointers of an existing connection, we can use it. This will be used later in order to allow multiple dcerpc connections over the same smb connection. Signed-off-by: Stefan Metzmacher Reviewed-by: Andrew Bartlett --- source4/librpc/rpc/dcerpc_connect.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'source4') diff --git a/source4/librpc/rpc/dcerpc_connect.c b/source4/librpc/rpc/dcerpc_connect.c index f779d1a9d70..ecb53150388 100644 --- a/source4/librpc/rpc/dcerpc_connect.c +++ b/source4/librpc/rpc/dcerpc_connect.c @@ -146,6 +146,11 @@ static struct composite_context *dcerpc_pipe_connect_ncacn_np_smb_send(TALLOC_CT s->io = *io; conn = &s->conn; + if (smbXcli_conn_is_connected(s->io.smb.conn)) { + continue_smb_open(c); + return c; + } + /* prepare smb connection parameters: we're connecting to IPC$ share on remote rpc server */ conn->in.dest_host = dcerpc_binding_get_string_option(s->io.binding, "host"); @@ -253,6 +258,11 @@ static struct composite_context *dcerpc_pipe_connect_ncacn_np_smb2_send( s->io = *io; + if (smbXcli_conn_is_connected(s->io.smb.conn)) { + continue_smb_open(c); + return c; + } + host = dcerpc_binding_get_string_option(s->io.binding, "host"); flags = dcerpc_binding_get_flags(s->io.binding); -- cgit