summaryrefslogtreecommitdiff
path: root/source4/rpc_server/dcerpc_server.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2009-09-22 00:18:03 -0700
committerAndrew Tridgell <tridge@samba.org>2009-09-22 17:10:05 -0700
commit8a090265b700669ac9e1296bc3d808e8851945e6 (patch)
tree1c24e3dac479b356081f8b0325d3fe8844dcff45 /source4/rpc_server/dcerpc_server.c
parenta971b87a9e71cea5ef785b58c8d4ac3f4e3ea22d (diff)
downloadsamba-8a090265b700669ac9e1296bc3d808e8851945e6.tar.gz
samba-8a090265b700669ac9e1296bc3d808e8851945e6.tar.bz2
samba-8a090265b700669ac9e1296bc3d808e8851945e6.zip
s4-rpcserver: added support for shared handles
This supports shared RPC handles across connections on all RPC interfaces. It turns out that w2k3 and w2k8 don't actually support this on all pipes. We need to test which pipes we should enable this on.
Diffstat (limited to 'source4/rpc_server/dcerpc_server.c')
-rw-r--r--source4/rpc_server/dcerpc_server.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/source4/rpc_server/dcerpc_server.c b/source4/rpc_server/dcerpc_server.c
index a70c920f75..df0c2e7345 100644
--- a/source4/rpc_server/dcerpc_server.c
+++ b/source4/rpc_server/dcerpc_server.c
@@ -74,6 +74,17 @@ static struct dcesrv_assoc_group *dcesrv_assoc_group_reference(TALLOC_CTX *mem_c
return talloc_reference(mem_ctx, assoc_group);
}
+static int dcesrv_assoc_group_destructor(struct dcesrv_assoc_group *assoc_group)
+{
+ int ret;
+ ret = idr_remove(assoc_group->dce_ctx->assoc_groups_idr, assoc_group->id);
+ if (ret != 0) {
+ DEBUG(0,(__location__ ": Failed to remove assoc_group 0x%08x\n",
+ assoc_group->id));
+ }
+ return 0;
+}
+
/*
allocate a new association group
*/
@@ -96,6 +107,10 @@ static struct dcesrv_assoc_group *dcesrv_assoc_group_new(TALLOC_CTX *mem_ctx,
}
assoc_group->id = id;
+ assoc_group->dce_ctx = dce_ctx;
+
+ talloc_set_destructor(assoc_group, dcesrv_assoc_group_destructor);
+
return assoc_group;
}