summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/librpc/rpc/dcerpc_auth.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/source4/librpc/rpc/dcerpc_auth.c b/source4/librpc/rpc/dcerpc_auth.c
index 1c73bde6e4..c506c8fd4c 100644
--- a/source4/librpc/rpc/dcerpc_auth.c
+++ b/source4/librpc/rpc/dcerpc_auth.c
@@ -100,12 +100,14 @@ NTSTATUS dcerpc_bind_auth(struct dcerpc_pipe *p, uint8_t auth_type, uint8_t auth
p->conn->security_state.auth_info->credentials = credentials;
- if (auth_type == DCERPC_AUTH_TYPE_SPNEGO) {
+ if (NT_STATUS_EQUAL(status, NT_STATUS_MORE_PROCESSING_REQUIRED)) {
+ /* We are demanding a reply, so use a request that will get us one */
status = dcerpc_alter_context(p, tmp_ctx, &p->syntax, &p->transfer_syntax);
if (!NT_STATUS_IS_OK(status)) {
break;
}
} else {
+ /* NO reply expected, so just send it */
status = dcerpc_auth3(p->conn, tmp_ctx);
credentials = data_blob(NULL, 0);
if (!NT_STATUS_IS_OK(status)) {