summaryrefslogtreecommitdiffstats
path: root/source3/rpc_client
diff options
context:
space:
mode:
authorGregor Beck <gbeck@sernet.de>2013-09-13 12:55:34 +0200
committerStefan Metzmacher <metze@samba.org>2014-01-07 08:37:41 +0100
commit46d29d46bc065d51e3f7ca6892ccd04cf6ce9bef (patch)
treeb393af64f78fe47d3df53aa35a0d1fb15f20229d /source3/rpc_client
parent6ebbce96a4fcd1fea8009698e9c0ea8fb4a5e220 (diff)
downloadsamba-46d29d46bc065d51e3f7ca6892ccd04cf6ce9bef.tar.gz
samba-46d29d46bc065d51e3f7ca6892ccd04cf6ce9bef.tar.xz
samba-46d29d46bc065d51e3f7ca6892ccd04cf6ce9bef.zip
s3:libsmb: do not use cli_state internally within cli_np_tstream
Signed-off-by: Gregor Beck <gbeck@sernet.de> Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'source3/rpc_client')
-rw-r--r--source3/rpc_client/rpc_transport_np.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/source3/rpc_client/rpc_transport_np.c b/source3/rpc_client/rpc_transport_np.c
index 961749436c..9e0bebb574 100644
--- a/source3/rpc_client/rpc_transport_np.c
+++ b/source3/rpc_client/rpc_transport_np.c
@@ -22,6 +22,8 @@
#include "rpc_client/rpc_transport.h"
#include "libsmb/cli_np_tstream.h"
#include "librpc/ndr/ndr_table.h"
+#include "libcli/smb/smbXcli_base.h"
+#include "client.h"
#undef DBGC_CLASS
#define DBGC_CLASS DBGC_RPC_CLI
@@ -41,6 +43,9 @@ struct tevent_req *rpc_transport_np_init_send(TALLOC_CTX *mem_ctx,
struct rpc_transport_np_init_state *state;
const char *pipe_name;
struct tevent_req *subreq;
+ struct smbXcli_session *session;
+ struct smbXcli_tcon *tcon;
+ uint16_t pid = 0;
req = tevent_req_create(mem_ctx, &state,
struct rpc_transport_np_init_state);
@@ -48,6 +53,15 @@ struct tevent_req *rpc_transport_np_init_send(TALLOC_CTX *mem_ctx,
return NULL;
}
+ if (smbXcli_conn_protocol(cli->conn) >= PROTOCOL_SMB2_02) {
+ tcon = cli->smb2.tcon;
+ session = cli->smb2.session;
+ } else {
+ tcon = cli->smb1.tcon;
+ session = cli->smb1.session;
+ pid = cli->smb1.pid;
+ }
+
pipe_name = dcerpc_default_transport_endpoint(mem_ctx, NCACN_NP, table);
if (tevent_req_nomem(pipe_name, req)) {
return tevent_req_post(req, ev);
@@ -57,7 +71,8 @@ struct tevent_req *rpc_transport_np_init_send(TALLOC_CTX *mem_ctx,
pipe_name++;
}
- subreq = tstream_cli_np_open_send(state, ev, cli, pipe_name);
+ subreq = tstream_cli_np_open_send(state, ev, cli->conn, session, tcon,
+ pid, cli->timeout, pipe_name);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}