diff options
author | Andrew Tridgell <tridge@samba.org> | 2004-10-30 11:48:08 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:05:05 -0500 |
commit | eb3b2568641759c0b5a4e121c75102e96af7e683 (patch) | |
tree | e1b5395fc3b6fb0b979d2ff035070e70e9eef160 | |
parent | 173dda6bf4db2faf29a1845ce2b1028105511dab (diff) | |
download | samba-eb3b2568641759c0b5a4e121c75102e96af7e683.tar.gz samba-eb3b2568641759c0b5a4e121c75102e96af7e683.tar.bz2 samba-eb3b2568641759c0b5a4e121c75102e96af7e683.zip |
r3392: fixed schannel over ncalrpc
(This used to be commit 0b93be9f5f89ef17f94e8e98c3a405495e04e235)
-rw-r--r-- | source4/librpc/idl/netlogon.idl | 2 | ||||
-rw-r--r-- | source4/librpc/rpc/dcerpc_schannel.c | 3 | ||||
-rw-r--r-- | source4/librpc/rpc/dcerpc_util.c | 10 |
3 files changed, 14 insertions, 1 deletions
diff --git a/source4/librpc/idl/netlogon.idl b/source4/librpc/idl/netlogon.idl index c981f61db4..c98fa8f1e6 100644 --- a/source4/librpc/idl/netlogon.idl +++ b/source4/librpc/idl/netlogon.idl @@ -9,7 +9,7 @@ [ uuid("12345678-1234-abcd-ef00-01234567cffb"), version(1.0), - endpoint("ncacn_np:[\\pipe\\netlogon]","ncacn_ip_tcp:"), + endpoint("ncacn_np:[\\pipe\\netlogon]","ncacn_ip_tcp:","ncalrpc:"), pointer_default(unique) ] diff --git a/source4/librpc/rpc/dcerpc_schannel.c b/source4/librpc/rpc/dcerpc_schannel.c index f53d77647a..b7eac60dbc 100644 --- a/source4/librpc/rpc/dcerpc_schannel.c +++ b/source4/librpc/rpc/dcerpc_schannel.c @@ -362,6 +362,9 @@ static NTSTATUS dcerpc_schannel_key(struct dcerpc_pipe *p, DCERPC_NETLOGON_NAME, DCERPC_NETLOGON_UUID, DCERPC_NETLOGON_VERSION); + if (!NT_STATUS_IS_OK(status)) { + return status; + } /* diff --git a/source4/librpc/rpc/dcerpc_util.c b/source4/librpc/rpc/dcerpc_util.c index 4c2c107b22..adb39f5dc7 100644 --- a/source4/librpc/rpc/dcerpc_util.c +++ b/source4/librpc/rpc/dcerpc_util.c @@ -1111,6 +1111,16 @@ NTSTATUS dcerpc_secondary_connection(struct dcerpc_pipe *p, struct dcerpc_pipe * pipe_version, NULL, NULL, NULL); break; + + case NCALRPC: + status = dcerpc_parse_binding(p, p->binding_string, &b); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + b.flags &= ~DCERPC_AUTH_OPTIONS; + status = dcerpc_pipe_connect_ncalrpc(p2, &b, pipe_uuid, pipe_version, NULL, NULL, NULL); + break; + default: return NT_STATUS_NOT_SUPPORTED; } |