[4/4] winhttp: Store the context passed to WinHttpSendRequest.
Hans Leidekker
hans at codeweavers.com
Mon Jan 25 05:27:31 CST 2010
See http://bugs.winehq.org/show_bug.cgi?id=21442
---
dlls/winhttp/request.c | 1 +
dlls/winhttp/tests/winhttp.c | 16 +++++++++++++---
2 files changed, 14 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..6be89de 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,19 @@ 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;
+ 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;
--
1.6.3.3
More information about the wine-patches
mailing list