The Samba-Bugzilla – Attachment 10972 Details for
Bug 11225
multiplexed RPC connections are not handled by DCERPC server
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
patch for v4-1 series
0001-s4-rpc_server-Add-multiplex-state-to-dcerpc-flags-an.patch (text/plain), 3.05 KB, created by
Julien Kerihuel (mail address dead)
on 2015-04-20 14:35:18 UTC
(
hide
)
Description:
patch for v4-1 series
Filename:
MIME Type:
Creator:
Julien Kerihuel (mail address dead)
Created:
2015-04-20 14:35:18 UTC
Size:
3.05 KB
patch
obsolete
>From 722a5493610a760cb080a1843f6bb40139384006 Mon Sep 17 00:00:00 2001 >From: Julien Kerihuel <j.kerihuel@openchange.org> >Date: Tue, 24 Mar 2015 21:06:03 -0700 >Subject: [PATCH 1/2] s4:rpc_server: Add multiplex state to dcerpc flags and > control over multiplex PFC flag in bind_ack and and dcesrv_alter replies > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=11225 > >Signed-off-by: Julien Kerihuel <j.kerihuel@openchange.org> >Reviewed-by: "Stefan (metze) Metzmacher" <metze@samba.org> >Reviewed-by: Jelmer Vernooij <jelmer@samba.org> >(cherry picked from commit caaf89e899c2a3926fb9e54d1c86f1a9cd5d7618) > >Conflicts: > source4/rpc_server/dcerpc_server.c > source4/rpc_server/dcerpc_server.h >--- > source4/rpc_server/dcerpc_server.c | 15 ++++++++++++++- > source4/rpc_server/dcerpc_server.h | 1 + > 2 files changed, 15 insertions(+), 1 deletion(-) > >diff --git a/source4/rpc_server/dcerpc_server.c b/source4/rpc_server/dcerpc_server.c >index ad53685..39de1b2 100644 >--- a/source4/rpc_server/dcerpc_server.c >+++ b/source4/rpc_server/dcerpc_server.c >@@ -616,6 +616,12 @@ static NTSTATUS dcesrv_bind(struct dcesrv_call_state *call) > extra_flags |= DCERPC_PFC_FLAG_SUPPORT_HEADER_SIGN; > } > >+ if ((call->pkt.pfc_flags & DCERPC_PFC_FLAG_CONC_MPX) && >+ (call->state_flags & DCESRV_CALL_STATE_FLAG_MULTIPLEXED)) { >+ call->context->conn->state_flags |= DCESRV_CALL_STATE_FLAG_MULTIPLEXED; >+ extra_flags |= DCERPC_PFC_FLAG_CONC_MPX; >+ } >+ > /* handle any authentication that is being requested */ > if (!dcesrv_auth_bind(call)) { > talloc_free(call->context); >@@ -795,6 +801,7 @@ static NTSTATUS dcesrv_alter(struct dcesrv_call_state *call) > NTSTATUS status; > uint32_t result=0, reason=0; > uint32_t context_id; >+ uint32_t extra_flags = 0; > > /* handle any authentication that is being requested */ > if (!dcesrv_auth_alter(call)) { >@@ -828,12 +835,18 @@ static NTSTATUS dcesrv_alter(struct dcesrv_call_state *call) > reason = DCERPC_BIND_REASON_ASYNTAX; > } > >+ if ((call->pkt.pfc_flags & DCERPC_PFC_FLAG_CONC_MPX)) { >+ if (call->context->conn->state_flags & DCESRV_CALL_STATE_FLAG_MULTIPLEXED) { >+ extra_flags |= DCERPC_PFC_FLAG_CONC_MPX; >+ } >+ } >+ > /* setup a alter_resp */ > dcesrv_init_hdr(&pkt, lpcfg_rpc_big_endian(call->conn->dce_ctx->lp_ctx)); > pkt.auth_length = 0; > pkt.call_id = call->pkt.call_id; > pkt.ptype = DCERPC_PKT_ALTER_RESP; >- pkt.pfc_flags = DCERPC_PFC_FLAG_FIRST | DCERPC_PFC_FLAG_LAST; >+ pkt.pfc_flags = DCERPC_PFC_FLAG_FIRST | DCERPC_PFC_FLAG_LAST | extra_flags; > pkt.u.alter_resp.max_xmit_frag = 0x2000; > pkt.u.alter_resp.max_recv_frag = 0x2000; > if (result == 0) { >diff --git a/source4/rpc_server/dcerpc_server.h b/source4/rpc_server/dcerpc_server.h >index 66fe51e..e2c9898 100644 >--- a/source4/rpc_server/dcerpc_server.h >+++ b/source4/rpc_server/dcerpc_server.h >@@ -102,6 +102,7 @@ struct dcesrv_call_state { > #define DCESRV_CALL_STATE_FLAG_ASYNC (1<<0) > #define DCESRV_CALL_STATE_FLAG_MAY_ASYNC (1<<1) > #define DCESRV_CALL_STATE_FLAG_HEADER_SIGNING (1<<2) >+#define DCESRV_CALL_STATE_FLAG_MULTIPLEXED (1<<3) > uint32_t state_flags; > > /* the time the request arrived in the server */ >-- >1.9.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
jra
:
review+
Actions:
View
Attachments on
bug 11225
:
10967
| 10972 |
10973