summaryrefslogtreecommitdiff
path: root/source4/librpc/rpc/dcerpc_util.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/librpc/rpc/dcerpc_util.c')
-rw-r--r--source4/librpc/rpc/dcerpc_util.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/source4/librpc/rpc/dcerpc_util.c b/source4/librpc/rpc/dcerpc_util.c
index 992368777c..b815f5317d 100644
--- a/source4/librpc/rpc/dcerpc_util.c
+++ b/source4/librpc/rpc/dcerpc_util.c
@@ -785,7 +785,6 @@ static NTSTATUS dcerpc_pipe_auth(struct dcerpc_pipe *p,
const char *password)
{
NTSTATUS status;
-
p->conn->flags = binding->flags;
/* remember the binding string for possible secondary connections */
@@ -794,10 +793,17 @@ static NTSTATUS dcerpc_pipe_auth(struct dcerpc_pipe *p,
if (username && username[0] && (binding->flags & DCERPC_SCHANNEL_ANY)) {
status = dcerpc_bind_auth_schannel(p, pipe_uuid, pipe_version,
domain, username, password);
- } else if (username && username[0] && (binding->flags & DCERPC_AUTH_SPNEGO)) {
- status = dcerpc_bind_auth_spnego(p, pipe_uuid, pipe_version, domain, username, password);
} else if (username && username[0]) {
- status = dcerpc_bind_auth_ntlm(p, pipe_uuid, pipe_version, domain, username, password);
+ uint8_t auth_type;
+ if (binding->flags & DCERPC_AUTH_SPNEGO) {
+ auth_type = DCERPC_AUTH_TYPE_SPNEGO;
+ } else {
+ auth_type = DCERPC_AUTH_TYPE_NTLMSSP;
+ }
+
+ status = dcerpc_bind_auth_password(p, pipe_uuid, pipe_version,
+ domain, username, password,
+ auth_type);
} else {
status = dcerpc_bind_auth_none(p, pipe_uuid, pipe_version);
}