summaryrefslogtreecommitdiff
path: root/source3/rpc_server/rpc_handles.c
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2011-05-31 10:53:55 +0200
committerAndreas Schneider <asn@samba.org>2011-06-01 12:02:15 +0200
commit6b0f82eeab04e59657231b73fd94d33cffaadc76 (patch)
tree8277998b07a8dc4b9fc8c32fa769865c9b790143 /source3/rpc_server/rpc_handles.c
parent58485afd91dde993cd7f14ca0182f661be4b719c (diff)
downloadsamba-6b0f82eeab04e59657231b73fd94d33cffaadc76.tar.gz
samba-6b0f82eeab04e59657231b73fd94d33cffaadc76.tar.bz2
samba-6b0f82eeab04e59657231b73fd94d33cffaadc76.zip
s3-rpc_server: Migrate init_pipe_handles() to new syntax.
Diffstat (limited to 'source3/rpc_server/rpc_handles.c')
-rw-r--r--source3/rpc_server/rpc_handles.c29
1 files changed, 21 insertions, 8 deletions
diff --git a/source3/rpc_server/rpc_handles.c b/source3/rpc_server/rpc_handles.c
index 493149b2c3..32e98f3644 100644
--- a/source3/rpc_server/rpc_handles.c
+++ b/source3/rpc_server/rpc_handles.c
@@ -84,15 +84,28 @@ bool init_pipe_handles(struct pipes_struct *p, const struct ndr_syntax_id *synta
for (plist = get_first_internal_pipe();
plist;
plist = get_next_internal_pipe(plist)) {
- if (ndr_syntax_id_equal(syntax, &plist->syntax)) {
- break;
+ struct pipe_rpc_fns *p_ctx;
+ bool stop = false;
+
+ for (p_ctx = plist->contexts;
+ p_ctx != NULL;
+ p_ctx = p_ctx->next) {
+ if (ndr_syntax_id_equal(syntax, &p_ctx->syntax)) {
+ stop = true;
+ break;
+ }
+ if (is_samr_lsa_pipe(&p_ctx->syntax)
+ && is_samr_lsa_pipe(syntax)) {
+ /*
+ * samr and lsa share a handle space (same process
+ * under Windows?)
+ */
+ stop = true;
+ break;
+ }
}
- if (is_samr_lsa_pipe(&plist->syntax)
- && is_samr_lsa_pipe(syntax)) {
- /*
- * samr and lsa share a handle space (same process
- * under Windows?)
- */
+
+ if (stop) {
break;
}
}