winhttp: Don't change the verb if the server response is HTTP_STATUS_REDIRECT_KEEP_VERB.
This commit is contained in:
parent
a4a4a420f8
commit
b7df063fde
@ -1544,7 +1544,7 @@ end:
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL handle_redirect( request_t *request )
|
static BOOL handle_redirect( request_t *request, DWORD status )
|
||||||
{
|
{
|
||||||
BOOL ret = FALSE;
|
BOOL ret = FALSE;
|
||||||
DWORD size, len;
|
DWORD size, len;
|
||||||
@ -1626,9 +1626,11 @@ static BOOL handle_redirect( request_t *request )
|
|||||||
if ((index = get_header_index( request, attr_content_type, 0, TRUE )) >= 0) delete_header( request, index );
|
if ((index = get_header_index( request, attr_content_type, 0, TRUE )) >= 0) delete_header( request, index );
|
||||||
if ((index = get_header_index( request, attr_content_length, 0, TRUE )) >= 0 ) delete_header( request, index );
|
if ((index = get_header_index( request, attr_content_length, 0, TRUE )) >= 0 ) delete_header( request, index );
|
||||||
|
|
||||||
/* redirects are always GET requests */
|
if (status != HTTP_STATUS_REDIRECT_KEEP_VERB)
|
||||||
heap_free( request->verb );
|
{
|
||||||
request->verb = strdupW( getW );
|
heap_free( request->verb );
|
||||||
|
request->verb = strdupW( getW );
|
||||||
|
}
|
||||||
ret = TRUE;
|
ret = TRUE;
|
||||||
|
|
||||||
end:
|
end:
|
||||||
@ -1840,7 +1842,7 @@ static BOOL receive_response( request_t *request, BOOL async )
|
|||||||
if (request->hdr.disable_flags & WINHTTP_DISABLE_REDIRECTS) break;
|
if (request->hdr.disable_flags & WINHTTP_DISABLE_REDIRECTS) break;
|
||||||
|
|
||||||
drain_content( request );
|
drain_content( request );
|
||||||
if (!(ret = handle_redirect( request ))) break;
|
if (!(ret = handle_redirect( request, status ))) break;
|
||||||
|
|
||||||
clear_response_headers( request );
|
clear_response_headers( request );
|
||||||
ret = send_request( request, NULL, 0, NULL, 0, 0, 0, FALSE ); /* recurse synchronously */
|
ret = send_request( request, NULL, 0, NULL, 0, 0, 0, FALSE ); /* recurse synchronously */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user