diff options
author | Gregor Beck <gbeck@sernet.de> | 2013-09-13 12:55:34 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2014-01-07 08:37:41 +0100 |
commit | 46d29d46bc065d51e3f7ca6892ccd04cf6ce9bef (patch) | |
tree | b393af64f78fe47d3df53aa35a0d1fb15f20229d /source3/rpc_client | |
parent | 6ebbce96a4fcd1fea8009698e9c0ea8fb4a5e220 (diff) | |
download | samba-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.c | 17 |
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); } |