diff options
author | Andrew Tridgell <tridge@samba.org> | 2009-09-21 21:36:54 -0700 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2009-09-22 17:10:05 -0700 |
commit | 69cb91a2eb2c3853663a61c2ed8f38e8fdde0964 (patch) | |
tree | 8a2bbcce7e837c5c3e2dda558dabed4306f6b236 /source4/rpc_server/dcerpc_server.h | |
parent | a30d6130869239a6d6160c50908092e1d1424af5 (diff) | |
download | samba-69cb91a2eb2c3853663a61c2ed8f38e8fdde0964.tar.gz samba-69cb91a2eb2c3853663a61c2ed8f38e8fdde0964.tar.xz samba-69cb91a2eb2c3853663a61c2ed8f38e8fdde0964.zip |
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.
Diffstat (limited to 'source4/rpc_server/dcerpc_server.h')
-rw-r--r-- | source4/rpc_server/dcerpc_server.h | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/source4/rpc_server/dcerpc_server.h b/source4/rpc_server/dcerpc_server.h index 0c4d4d413d7..a64b01fdc59 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 */ |