s3-rpc_server: Return the status code from gensec.
authorAndreas Schneider <asn@samba.org>
Wed, 23 Apr 2014 08:40:27 +0000 (10:40 +0200)
committerStefan Metzmacher <metze@samba.org>
Thu, 24 Apr 2014 09:21:05 +0000 (11:21 +0200)
We need to know the difference between NT_STATUS_OK
and NT_STATUS_MORE_PROCESSING_REQUIRED.

Signed-off-by: Andreas Schneider <asn@samba.org>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
source3/rpc_server/dcesrv_auth_generic.c
source3/rpc_server/srv_pipe.c

index b6e45684e7ff8735fee29720191d3f35769ffa7d..a338108a41f910458f198d51e81753e4570aa566 100644 (file)
@@ -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,
index cdbe5faf5733c352d2958c34d3e3c563f4d6f224..28bcba76a9bd4fdf47c73ce1ad61b21316869caa 100644 (file)
@@ -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;
        }