diff options
author | Andrew Tridgell <tridge@samba.org> | 2004-01-20 06:07:09 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2004-01-20 06:07:09 +0000 |
commit | 8ae5b50a6e787767bc00d42533ca29d8fb136e2e (patch) | |
tree | d94e73574fb50c951921f7632fd32d9069962cc9 /source4/librpc/rpc/dcerpc.h | |
parent | 7a4da9654e30ea96b326448c3e9111c2a5604f58 (diff) | |
download | samba-8ae5b50a6e787767bc00d42533ca29d8fb136e2e.tar.gz samba-8ae5b50a6e787767bc00d42533ca29d8fb136e2e.tar.bz2 samba-8ae5b50a6e787767bc00d42533ca29d8fb136e2e.zip |
added code to the RPC-SPOOLSS test that demonstrates that policy
handles are not shared between open dcerpc connections, even when
those connections are on the same SMB socket. I have tested this with
w2k3, w2k and NT4. It seems that policy handles have a strict scope of
the dcerpc connection on which they were opened.
I realise that this goes against existing folk-law in the team, but it
seems that the previous testing (I'm not sure who did this?) was
wrong. Perhaps clients do send us policy handles from other
connections, but if they do then the correct thing to do is to fail
the operation with a dcerpc fault. I suspect that failing it with
exactly the right dcerpc fault code is important.
(This used to be commit 2ed24d29bafd9055d5782acdd595cd0f378a651a)
Diffstat (limited to 'source4/librpc/rpc/dcerpc.h')
-rw-r--r-- | source4/librpc/rpc/dcerpc.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/source4/librpc/rpc/dcerpc.h b/source4/librpc/rpc/dcerpc.h index 5d25882041..fdd17fcbb3 100644 --- a/source4/librpc/rpc/dcerpc.h +++ b/source4/librpc/rpc/dcerpc.h @@ -29,6 +29,9 @@ marshalling/unmarshalling routines in decrpc.c */ +enum dcerpc_transport_t {NCACN_NP, NCACN_IP_TCP}; + + struct dcerpc_pipe { TALLOC_CTX *mem_ctx; int reference_count; @@ -38,8 +41,10 @@ struct dcerpc_pipe { unsigned flags; struct ntlmssp_state *ntlmssp_state; struct dcerpc_auth *auth_info; - + const char *binding_string; + struct dcerpc_transport { + enum dcerpc_transport_t transport; void *private; NTSTATUS (*full_request)(struct dcerpc_pipe *, TALLOC_CTX *, DATA_BLOB *, DATA_BLOB *); @@ -94,8 +99,6 @@ struct dcerpc_interface_table { }; -enum dcerpc_transport_t {NCACN_NP, NCACN_IP_TCP}; - /* this describes a binding to a particular transport/pipe */ struct dcerpc_binding { enum dcerpc_transport_t transport; |