summaryrefslogtreecommitdiff
path: root/source4/rpc_server
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2004-04-27 07:12:10 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:51:35 -0500
commit6cc392bff3dfe0b6b17ddb89e21bc2cdf1b51c92 (patch)
tree9670b9cc15331a427b0e491cbf75049d3b0c99a6 /source4/rpc_server
parent888240138203123222c5a983616b524f9325f606 (diff)
downloadsamba-6cc392bff3dfe0b6b17ddb89e21bc2cdf1b51c92.tar.gz
samba-6cc392bff3dfe0b6b17ddb89e21bc2cdf1b51c92.tar.bz2
samba-6cc392bff3dfe0b6b17ddb89e21bc2cdf1b51c92.zip
r374: allow for a policy_handle fetch using a handle type of
DCESRV_HANDLE_ANY. This is needed for operations like samr_Close() that take any handle type. (This used to be commit 6fbbfc4462388c4c86f9f0ddd3cdd99225512ef2)
Diffstat (limited to 'source4/rpc_server')
-rw-r--r--source4/rpc_server/dcerpc_server.h1
-rw-r--r--source4/rpc_server/handles.c3
2 files changed, 3 insertions, 1 deletions
diff --git a/source4/rpc_server/dcerpc_server.h b/source4/rpc_server/dcerpc_server.h
index c2bbe8073a..bd5deab847 100644
--- a/source4/rpc_server/dcerpc_server.h
+++ b/source4/rpc_server/dcerpc_server.h
@@ -79,6 +79,7 @@ struct dcesrv_call_state {
} *replies;
};
+#define DCESRV_HANDLE_ANY 255
/* a dcerpc handle in internal format */
struct dcesrv_handle {
diff --git a/source4/rpc_server/handles.c b/source4/rpc_server/handles.c
index df6abd65a5..21030b4755 100644
--- a/source4/rpc_server/handles.c
+++ b/source4/rpc_server/handles.c
@@ -83,7 +83,8 @@ struct dcesrv_handle *dcesrv_handle_fetch(struct dcesrv_connection *dce_conn,
for (h=dce_conn->handles; h; h=h->next) {
if (h->wire_handle.handle_type == p->handle_type &&
uuid_equal(&p->uuid, &h->wire_handle.uuid)) {
- if (p->handle_type != handle_type) {
+ if (handle_type != DCESRV_HANDLE_ANY &&
+ p->handle_type != handle_type) {
DEBUG(0,("client gave us the wrong handle type (%d should be %d)\n",
p->handle_type, handle_type));
return NULL;