Module: wine Branch: master Commit: e4471d5f80ed4cf0cfe5fedd0b01e66e92356255 URL: http://source.winehq.org/git/wine.git/?a=commit;h=e4471d5f80ed4cf0cfe5fedd0b...
Author: Hans Leidekker hans@codeweavers.com Date: Mon Jan 25 14:00:08 2010 +0100
winhttp: Store the context passed to WinHttpSendRequest.
---
dlls/winhttp/request.c | 1 + dlls/winhttp/tests/winhttp.c | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/dlls/winhttp/request.c b/dlls/winhttp/request.c index f6c9bce..8bb825c 100644 --- a/dlls/winhttp/request.c +++ b/dlls/winhttp/request.c @@ -1057,6 +1057,7 @@ static BOOL send_request( request_t *request, LPCWSTR headers, DWORD headers_len TRACE("full request: %s\n", debugstr_a(req_ascii)); len = strlen(req_ascii);
+ if (context) request->hdr.context = context; send_callback( &request->hdr, WINHTTP_CALLBACK_STATUS_SENDING_REQUEST, NULL, 0 );
ret = netconn_send( &request->netconn, req_ascii, len, 0, &bytes_sent ); diff --git a/dlls/winhttp/tests/winhttp.c b/dlls/winhttp/tests/winhttp.c index d9966ea..4a4e7f4 100644 --- a/dlls/winhttp/tests/winhttp.c +++ b/dlls/winhttp/tests/winhttp.c @@ -248,8 +248,8 @@ static void test_empty_headers_param(void) static void test_SendRequest (void) { HINTERNET session, request, connection; - DWORD header_len, optional_len, total_len; - DWORD bytes_rw; + DWORD header_len, optional_len, total_len, bytes_rw, size; + DWORD_PTR context; BOOL ret; CHAR buffer[256]; int i; @@ -284,9 +284,20 @@ static void test_SendRequest (void) } ok(request != NULL, "WinHttpOpenrequest failed to open a request, error: %u.\n", GetLastError());
- ret = WinHttpSendRequest(request, content_type, header_len, post_data, optional_len, total_len, 0); + context = 0xdeadbeef; + ret = WinHttpSetOption(request, WINHTTP_OPTION_CONTEXT_VALUE, &context, sizeof(context)); + ok(ret, "WinHttpSetOption failed: %u\n", GetLastError()); + + context++; + ret = WinHttpSendRequest(request, content_type, header_len, post_data, optional_len, total_len, context); ok(ret == TRUE, "WinHttpSendRequest failed: %u\n", GetLastError());
+ context = 0; + size = sizeof(context); + ret = WinHttpQueryOption(request, WINHTTP_OPTION_CONTEXT_VALUE, &context, &size); + ok(ret, "WinHttpQueryOption failed: %u\n", GetLastError()); + ok(context == 0xdeadbef0, "expected 0xdeadbef0, got %lx\n", context); + for (i = 3; post_data[i]; i++) { bytes_rw = -1;