From 59a5a0b218f7182c541a06ffc4528c1160699033 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Mon, 10 Jan 2005 08:56:55 +0000 Subject: [PATCH] r4630: for ncacn_np if we don't have an explicit request for one of the advanced auth types we should do a plain bind. This fixes rpc connections to ancient servers (like sun cascade) --- source/librpc/rpc/dcerpc.h | 4 ++-- source/librpc/rpc/dcerpc_util.c | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/source/librpc/rpc/dcerpc.h b/source/librpc/rpc/dcerpc.h index 289e17fb81b..4e58c3c75f4 100644 --- a/source/librpc/rpc/dcerpc.h +++ b/source/librpc/rpc/dcerpc.h @@ -120,8 +120,6 @@ struct dcerpc_pipe { DCERPC_SCHANNEL_DOMAIN| \ DCERPC_SCHANNEL_WORKSTATION) -#define DCERPC_AUTH_OPTIONS (DCERPC_SEAL|DCERPC_SIGN|DCERPC_SCHANNEL_ANY) - /* use a 128 bit session key */ #define DCERPC_SCHANNEL_128 (1<<12) @@ -131,6 +129,8 @@ struct dcerpc_pipe { /* set LIBNDR_FLAG_REF_ALLOC flag when decoding NDR */ #define DCERPC_NDR_REF_ALLOC (1<<14) +#define DCERPC_AUTH_OPTIONS (DCERPC_SEAL|DCERPC_SIGN|DCERPC_SCHANNEL_ANY|DCERPC_AUTH_SPNEGO) + /* enable spnego auth */ #define DCERPC_AUTH_SPNEGO (1<<15) diff --git a/source/librpc/rpc/dcerpc_util.c b/source/librpc/rpc/dcerpc_util.c index 534c17678d9..992368777c8 100644 --- a/source/librpc/rpc/dcerpc_util.c +++ b/source/librpc/rpc/dcerpc_util.c @@ -882,6 +882,10 @@ static NTSTATUS dcerpc_pipe_connect_ncacn_np(struct dcerpc_pipe **pp, talloc_free(p); return status; } + + if (!(binding->flags & DCERPC_AUTH_OPTIONS)) { + username = NULL; + } status = dcerpc_pipe_auth(p, binding, pipe_uuid, pipe_version, domain, username, password); if (!NT_STATUS_IS_OK(status)) { -- 2.34.1