winhttp: Store the context passed to WinHttpSendRequest.

This commit is contained in:
Hans Leidekker 2010-01-25 14:00:08 +01:00 committed by Alexandre Julliard
parent 02da36631e
commit e4471d5f80
2 changed files with 15 additions and 3 deletions

View File

@ -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 );

View File

@ -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;