summaryrefslogtreecommitdiff
path: root/source4/rpc_server/common
diff options
context:
space:
mode:
authorAnatoliy Atanasov <anatoliy.atanasov@postpath.com>2010-09-26 17:05:13 -0700
committerAnatoliy Atanasov <anatoliy.atanasov@postpath.com>2010-09-27 09:59:21 -0700
commit2cf0525b2382d22b3497f49eb58b9fd8f0c837e1 (patch)
treebc61485352e34403dbc60fefea32592b90a41848 /source4/rpc_server/common
parented7bbc993d4fd080303611a64fefc2b47d786176 (diff)
downloadsamba-2cf0525b2382d22b3497f49eb58b9fd8f0c837e1.tar.gz
samba-2cf0525b2382d22b3497f49eb58b9fd8f0c837e1.tar.bz2
samba-2cf0525b2382d22b3497f49eb58b9fd8f0c837e1.zip
s4/irpc: Add security token to the binding handle when doing irp call forwarding
Diffstat (limited to 'source4/rpc_server/common')
-rw-r--r--source4/rpc_server/common/forward.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/source4/rpc_server/common/forward.c b/source4/rpc_server/common/forward.c
index c983ac361e..113ac5f6c4 100644
--- a/source4/rpc_server/common/forward.c
+++ b/source4/rpc_server/common/forward.c
@@ -24,6 +24,8 @@
#include "rpc_server/dcerpc_server.h"
#include "rpc_server/common/common.h"
#include "messaging/irpc.h"
+#include "auth/auth.h"
+
struct dcesrv_forward_state {
const char *opname;
@@ -69,6 +71,7 @@ void dcesrv_irpc_forward_rpc_call(struct dcesrv_call_state *dce_call, TALLOC_CTX
struct dcesrv_forward_state *st;
struct dcerpc_binding_handle *binding_handle;
struct tevent_req *subreq;
+ struct security_token *token;
st = talloc(mem_ctx, struct dcesrv_forward_state);
if (st == NULL) {
@@ -100,6 +103,10 @@ void dcesrv_irpc_forward_rpc_call(struct dcesrv_call_state *dce_call, TALLOC_CTX
/* reset timeout for the handle */
dcerpc_binding_handle_set_timeout(binding_handle, timeout);
+ /* add security token to the handle*/
+ token = dce_call->conn->auth_state.session_info->security_token;
+ irpc_binding_handle_add_security_token(binding_handle, token);
+
/* forward the call */
subreq = dcerpc_binding_handle_call_send(st, dce_call->event_ctx,
binding_handle,