mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-06 03:08:19 +00:00
wininet: Don't clear the auth data for Basic authentication in HTTP_InsertAuthorizationForHeader.
It isn't tracked per connection, unlike NTLM authentication, and so the server will return a 401 error and try to get us to authenticate again. However, this doesn't work as the authentication information is assumed by the code to be valid for the whole connection.
This commit is contained in:
parent
4171309731
commit
01826e0c98
|
@ -1193,6 +1193,7 @@ static BOOL HTTP_InsertAuthorizationForHeader( LPWININETHTTPREQW lpwhr, struct H
|
|||
if (pAuthInfo && pAuthInfo->auth_data_len)
|
||||
{
|
||||
static const WCHAR wszSpace[] = {' ',0};
|
||||
static const WCHAR wszBasic[] = {'B','a','s','i','c',0};
|
||||
unsigned int len;
|
||||
|
||||
/* scheme + space + base64 encoded data (3/2/1 bytes data -> 4 bytes of characters) */
|
||||
|
@ -1208,10 +1209,14 @@ static BOOL HTTP_InsertAuthorizationForHeader( LPWININETHTTPREQW lpwhr, struct H
|
|||
authorization+strlenW(authorization));
|
||||
|
||||
/* clear the data as it isn't valid now that it has been sent to the
|
||||
* server */
|
||||
HeapFree(GetProcessHeap(), 0, pAuthInfo->auth_data);
|
||||
pAuthInfo->auth_data = NULL;
|
||||
pAuthInfo->auth_data_len = 0;
|
||||
* server, unless it's Basic authentication which doesn't do
|
||||
* connection tracking */
|
||||
if (strcmpiW(pAuthInfo->scheme, wszBasic))
|
||||
{
|
||||
HeapFree(GetProcessHeap(), 0, pAuthInfo->auth_data);
|
||||
pAuthInfo->auth_data = NULL;
|
||||
pAuthInfo->auth_data_len = 0;
|
||||
}
|
||||
}
|
||||
|
||||
TRACE("Inserting authorization: %s\n", debugstr_w(authorization));
|
||||
|
|
Loading…
Reference in a new issue