diff options
author | Julien Kerihuel <j.kerihuel@openchange.org> | 2008-05-15 13:55:23 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2008-05-16 08:54:34 +0200 |
commit | 8651def04c140da23f564be46b86c5e1f33349c4 (patch) | |
tree | 907d5d52c42ff006ba0942e7572ac5c255c5665d /source4 | |
parent | 25a82b8fc93ca01b7f142a680ad9a327e8cb8fa9 (diff) | |
download | samba-8651def04c140da23f564be46b86c5e1f33349c4.tar.gz samba-8651def04c140da23f564be46b86c5e1f33349c4.tar.bz2 samba-8651def04c140da23f564be46b86c5e1f33349c4.zip |
The following patch calls the op_bind operation for an interface which context is altered by dcerpc alter_context requests. It prevents dcerpc_server from returning errors (nca_s_fault_access_denied, then nca_s_fault_context_mismatch in further client requests) and keeps the connection alive.
Signed-off-by: Stefan Metzmacher <metze@samba.org>
(This used to be commit 718f9ce6889346c92894e868f0678fbe404a43ab)
Diffstat (limited to 'source4')
-rw-r--r-- | source4/rpc_server/dcerpc_server.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/source4/rpc_server/dcerpc_server.c b/source4/rpc_server/dcerpc_server.c index eb467709c9..e0351bb259 100644 --- a/source4/rpc_server/dcerpc_server.c +++ b/source4/rpc_server/dcerpc_server.c @@ -688,6 +688,7 @@ static NTSTATUS dcesrv_alter_new_context(struct dcesrv_call_state *call, uint32_ struct dcesrv_connection_context *context; const struct dcesrv_interface *iface; struct GUID uuid, *transfer_syntax_uuid; + NTSTATUS status; if_version = call->pkt.u.alter.ctx_list[0].abstract_syntax.if_version; uuid = call->pkt.u.alter.ctx_list[0].abstract_syntax.uuid; @@ -721,6 +722,13 @@ static NTSTATUS dcesrv_alter_new_context(struct dcesrv_call_state *call, uint32_ DLIST_ADD(call->conn->contexts, context); call->context = context; + if (iface) { + status = iface->bind(call, iface); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + } + return NT_STATUS_OK; } |