From bfdd22b3166377200f5395ef7384908d49d81ef1 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 23 Apr 2014 10:40:27 +0200 Subject: [PATCH] s3-rpc_server: Return the status code from gensec. We need to know the difference between NT_STATUS_OK and NT_STATUS_MORE_PROCESSING_REQUIRED. Signed-off-by: Andreas Schneider Signed-off-by: Stefan Metzmacher --- source3/rpc_server/dcesrv_auth_generic.c | 2 +- source3/rpc_server/srv_pipe.c | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/source3/rpc_server/dcesrv_auth_generic.c b/source3/rpc_server/dcesrv_auth_generic.c index b6e45684e7f..a338108a41f 100644 --- a/source3/rpc_server/dcesrv_auth_generic.c +++ b/source3/rpc_server/dcesrv_auth_generic.c @@ -59,7 +59,7 @@ static NTSTATUS auth_generic_server_authtype_start_as_root(TALLOC_CTX *mem_ctx, /* steal gensec context to the caller */ *ctx = talloc_move(mem_ctx, &gensec_security); - return NT_STATUS_OK; + return status; } NTSTATUS auth_generic_server_authtype_start(TALLOC_CTX *mem_ctx, diff --git a/source3/rpc_server/srv_pipe.c b/source3/rpc_server/srv_pipe.c index cdbe5faf573..28bcba76a9b 100644 --- a/source3/rpc_server/srv_pipe.c +++ b/source3/rpc_server/srv_pipe.c @@ -435,9 +435,11 @@ static bool pipe_auth_generic_bind(struct pipes_struct *p, response, p->remote_address, &gensec_security); - if (!NT_STATUS_EQUAL(status, NT_STATUS_OK)) { - DEBUG(0, (__location__ ": auth_generic_server_authtype_start failed: %s\n", - nt_errstr(status))); + if (!NT_STATUS_IS_OK(status) && + !NT_STATUS_EQUAL(status, NT_STATUS_MORE_PROCESSING_REQUIRED)) + { + DEBUG(0, (__location__ ": auth_generic_server_authtype_start[%u/%u] failed: %s\n", + auth_info->auth_type, auth_info->auth_level, nt_errstr(status))); return false; } -- 2.34.1