mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
8a2c526e13
[wininet-InternetReadFile] Removed patch to return synchronously from InternetReadFile if there is no more data to read (accepted upstream).
83 lines
2.9 KiB
Diff
83 lines
2.9 KiB
Diff
From a283ad7a863862caf312843950b88bdfd9faeacc Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
|
Date: Sat, 16 May 2015 00:24:35 +0200
|
|
Subject: wininet: Strip filename if no path is set in cookie.
|
|
|
|
The order of the stored cookies doesn't match in /testC, so
|
|
be a bit less strict in the test.
|
|
---
|
|
dlls/wininet/http.c | 11 ++++++++++-
|
|
dlls/wininet/tests/http.c | 6 +++---
|
|
2 files changed, 13 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c
|
|
index c44156c..7281512 100644
|
|
--- a/dlls/wininet/http.c
|
|
+++ b/dlls/wininet/http.c
|
|
@@ -764,10 +764,18 @@ static void HTTP_ProcessCookies( http_request_t *request )
|
|
int HeaderIndex;
|
|
int numCookies = 0;
|
|
LPHTTPHEADERW setCookieHeader;
|
|
+ WCHAR *path, *tmp;
|
|
|
|
if(request->hdr.dwFlags & INTERNET_FLAG_NO_COOKIES)
|
|
return;
|
|
|
|
+ path = heap_strdupW(request->path);
|
|
+ if (!path)
|
|
+ return;
|
|
+
|
|
+ tmp = strrchrW(path, '/');
|
|
+ if (tmp && tmp[1]) tmp[1] = 0;
|
|
+
|
|
EnterCriticalSection( &request->headers_section );
|
|
|
|
while((HeaderIndex = HTTP_GetCustomHeaderIndex(request, szSet_Cookie, numCookies++, FALSE)) != -1)
|
|
@@ -786,10 +794,11 @@ static void HTTP_ProcessCookies( http_request_t *request )
|
|
|
|
name = substr(setCookieHeader->lpszValue, data - setCookieHeader->lpszValue);
|
|
data++;
|
|
- set_cookie(substrz(request->server->name), substrz(request->path), name, substrz(data), INTERNET_COOKIE_HTTPONLY);
|
|
+ set_cookie(substrz(request->server->name), substrz(path), name, substrz(data), INTERNET_COOKIE_HTTPONLY);
|
|
}
|
|
|
|
LeaveCriticalSection( &request->headers_section );
|
|
+ heap_free(path);
|
|
}
|
|
|
|
static void strip_spaces(LPWSTR start)
|
|
diff --git a/dlls/wininet/tests/http.c b/dlls/wininet/tests/http.c
|
|
index b3826bb..910a0b4 100644
|
|
--- a/dlls/wininet/tests/http.c
|
|
+++ b/dlls/wininet/tests/http.c
|
|
@@ -2226,7 +2226,7 @@ static DWORD CALLBACK server_thread(LPVOID param)
|
|
}
|
|
if (strstr(buffer, "/testC"))
|
|
{
|
|
- if (strstr(buffer, "Cookie: cookie=biscuit"))
|
|
+ if (strstr(buffer, "cookie=biscuit"))
|
|
send(c, okmsg, sizeof okmsg-1, 0);
|
|
else
|
|
send(c, notokmsg, sizeof notokmsg-1, 0);
|
|
@@ -3196,7 +3196,7 @@ static void test_header_override(int port)
|
|
ret = HttpSendRequestA(req, NULL, 0, NULL, 0);
|
|
ok(ret, "HttpSendRequest failed\n");
|
|
|
|
- test_status_code_todo(req, 200);
|
|
+ test_status_code(req, 200);
|
|
|
|
InternetCloseHandle(req);
|
|
req = HttpOpenRequestA(con, NULL, "/test_cookie_check_host_override", NULL, NULL, NULL, INTERNET_FLAG_KEEP_CONNECTION, 0);
|
|
@@ -3205,7 +3205,7 @@ static void test_header_override(int port)
|
|
ret = HttpSendRequestA(req, NULL, 0, NULL, 0);
|
|
ok(ret, "HttpSendRequest failed\n");
|
|
|
|
- test_status_code_todo(req, 200);
|
|
+ test_status_code(req, 200);
|
|
|
|
InternetCloseHandle(req);
|
|
InternetSetCookieA("http://test.local", "foo", "bar");
|
|
--
|
|
2.8.0
|
|
|