From 6cc392bff3dfe0b6b17ddb89e21bc2cdf1b51c92 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 27 Apr 2004 07:12:10 +0000 Subject: 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) --- source4/rpc_server/dcerpc_server.h | 1 + source4/rpc_server/handles.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'source4') 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; -- cgit