Hans Leidekker : winhttp: Don' t change the verb if the server response is HTTP_STATUS_REDIRECT_KEEP_VERB.
Alexandre Julliard
julliard at winehq.org
Wed Jun 1 12:11:07 CDT 2011
Module: wine
Branch: master
Commit: b7df063fde8628d94dca56ece3f830f75d1fcddd
URL: http://source.winehq.org/git/wine.git/?a=commit;h=b7df063fde8628d94dca56ece3f830f75d1fcddd
Author: Hans Leidekker <hans at codeweavers.com>
Date: Wed Jun 1 11:50:11 2011 +0200
winhttp: Don't change the verb if the server response is HTTP_STATUS_REDIRECT_KEEP_VERB.
---
dlls/winhttp/request.c | 12 +++++++-----
1 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/dlls/winhttp/request.c b/dlls/winhttp/request.c
index 8a21ab5..c8eca75 100644
--- a/dlls/winhttp/request.c
+++ b/dlls/winhttp/request.c
@@ -1544,7 +1544,7 @@ end:
return TRUE;
}
-static BOOL handle_redirect( request_t *request )
+static BOOL handle_redirect( request_t *request, DWORD status )
{
BOOL ret = FALSE;
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_length, 0, TRUE )) >= 0 ) delete_header( request, index );
- /* redirects are always GET requests */
- heap_free( request->verb );
- request->verb = strdupW( getW );
+ if (status != HTTP_STATUS_REDIRECT_KEEP_VERB)
+ {
+ heap_free( request->verb );
+ request->verb = strdupW( getW );
+ }
ret = TRUE;
end:
@@ -1840,7 +1842,7 @@ static BOOL receive_response( request_t *request, BOOL async )
if (request->hdr.disable_flags & WINHTTP_DISABLE_REDIRECTS) break;
drain_content( request );
- if (!(ret = handle_redirect( request ))) break;
+ if (!(ret = handle_redirect( request, status ))) break;
clear_response_headers( request );
ret = send_request( request, NULL, 0, NULL, 0, 0, 0, FALSE ); /* recurse synchronously */
More information about the wine-cvs
mailing list