rpcrt4: Call CompleteAuthToken if InitializeSecurityContext returned a code that says it should be called.

Currently, the only security provider that requires this is the Digest 
one, which we don't really care about, but is supported for completeness.
This commit is contained in:
Rob Shearman 2007-03-26 18:18:01 +01:00 committed by Alexandre Julliard
parent 88e9b3fad8
commit 88295b9a02
1 changed files with 16 additions and 1 deletions

View File

@ -501,7 +501,22 @@ static RPC_STATUS RPCRT4_ClientAuthorize(RpcConnection *conn, SecBuffer *in,
return ERROR_ACCESS_DENIED; /* FIXME: is this correct? */
}
TRACE("r = 0x%08x, cbBuffer = %ld, attr = 0x%08x\n", r, out->cbBuffer, conn->attr);
TRACE("r = 0x%08x, attr = 0x%08x\n", r, conn->attr);
if ((r == SEC_I_COMPLETE_NEEDED) || (r == SEC_I_COMPLETE_AND_CONTINUE))
{
TRACE("complete needed\n");
r = CompleteAuthToken(&conn->ctx, &out_desc);
if (FAILED(r))
{
HeapFree(GetProcessHeap(), 0, out->pvBuffer);
out->pvBuffer = NULL;
WARN("CompleteAuthToken failed with error 0x%08x\n", r);
return ERROR_ACCESS_DENIED; /* FIXME: is this correct? */
}
}
TRACE("cbBuffer = %ld\n", out->cbBuffer);
return RPC_S_OK;
}