From 69cb91a2eb2c3853663a61c2ed8f38e8fdde0964 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Mon, 21 Sep 2009 21:36:54 -0700 Subject: s4-rpcserver: added shared association groups This patch allows us to share association groups and their rpc handles between connections. This is needed for some DRSUAPI behaviour when recent windows clients connect. --- source4/rpc_server/dcerpc_server.h | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'source4/rpc_server/dcerpc_server.h') diff --git a/source4/rpc_server/dcerpc_server.h b/source4/rpc_server/dcerpc_server.h index 0c4d4d413d..a64b01fdc5 100644 --- a/source4/rpc_server/dcerpc_server.h +++ b/source4/rpc_server/dcerpc_server.h @@ -153,7 +153,7 @@ struct dcesrv_connection_context { struct dcesrv_connection_context *next, *prev; uint32_t context_id; - uint32_t assoc_group_id; + struct dcesrv_assoc_group *assoc_group; /* the connection this is on */ struct dcesrv_connection *conn; @@ -163,10 +163,6 @@ struct dcesrv_connection_context { /* private data for the interface implementation */ void *private_data; - - /* current rpc handles - this is really the wrong scope for - them, but it will do for now */ - struct dcesrv_handle *handles; }; @@ -252,6 +248,15 @@ struct dcesrv_endpoint_server { }; +/* one association groups */ +struct dcesrv_assoc_group { + /* the wire id */ + uint32_t id; + + /* list of handles in this association group */ + struct dcesrv_handle *handles; +}; + /* server-wide context information for the dcerpc server */ struct dcesrv_context { /* the list of endpoints that have registered @@ -272,6 +277,8 @@ struct dcesrv_context { /* loadparm context to use for this connection */ struct loadparm_context *lp_ctx; + + struct idr_context *assoc_groups_idr; }; /* this structure is used by modules to determine the size of some critical types */ -- cgit