1 diff -pudN e:\wine\dlls\wininet/http.c e:\reactos\dll\win32\wininet/http.c
2 --- e:\wine\dlls\wininet/http.c 2015-07-14 15:44:36.040192300 +0100
3 +++ e:\reactos\dll\win32\wininet/http.c 2015-07-20 14:37:24.319646400 +0100
4 @@ -143,6 +118,7 @@ static const WCHAR emptyW[] = {0};
6 #define COLLECT_TIME 60000
9 #define ARRAYSIZE(array) (sizeof(array)/sizeof((array)[0]))
12 @@ -229,7 +205,13 @@ void server_release(server_t *server)
13 if(InterlockedDecrement(&server->ref))
17 + EnterCriticalSection(&connection_pool_cs);
19 list_remove(&server->entry);
21 + LeaveCriticalSection(&connection_pool_cs);
24 if(server->cert_chain)
25 CertFreeCertificateChain(server->cert_chain);
26 @@ -311,7 +293,11 @@ BOOL collect_connections(collect_type_t
27 BOOL remaining = FALSE;
31 + now = GetTickCount();
33 now = GetTickCount64();
36 LIST_FOR_EACH_ENTRY_SAFE(server, server_safe, &connection_pool, server_t, entry) {
37 LIST_FOR_EACH_ENTRY_SAFE(netconn, netconn_safe, &server->conn_pool, netconn_t, pool_entry) {
38 @@ -1973,13 +1959,14 @@ static void http_release_netconn(http_re
39 if(!is_valid_netconn(req->netconn))
43 if(reuse && req->netconn->keep_alive) {
46 EnterCriticalSection(&connection_pool_cs);
48 list_add_head(&req->netconn->server->conn_pool, &req->netconn->pool_entry);
49 - req->netconn->keep_until = GetTickCount64() + COLLECT_TIME;
50 + req->netconn->keep_until = (DWORD64)GetTickCount() + COLLECT_TIME;
53 run_collector = !collector_running;
54 @@ -2007,6 +1994,10 @@ static void http_release_netconn(http_re
59 + /* Silence unused function warning */
60 + (void)collect_connections_proc;
63 INTERNET_SendCallback(&req->hdr, req->hdr.dwContext,
64 INTERNET_STATUS_CLOSING_CONNECTION, 0, 0);
65 diff -pudN e:\wine\dlls\wininet/internet.c e:\reactos\dll\win32\wininet/internet.c
66 --- e:\wine\dlls\wininet/internet.c 2015-04-12 18:21:54.309796800 +0100
67 +++ e:\reactos\dll\win32\wininet/internet.c 2015-07-20 14:38:19.188784800 +0100
68 @@ -1033,6 +996,9 @@ HINTERNET WINAPI InternetOpenW(LPCWSTR l
70 appinfo_t *lpwai = NULL;
75 if (TRACE_ON(wininet)) {
76 #define FE(x) { x, #x }
77 static const wininet_flag_info access_type[] = {
79 diff -pudN e:\wine\dlls\wininet/urlcache.c e:\reactos\dll\win32\wininet/urlcache.c
80 --- e:\wine\dlls\wininet/urlcache.c 2015-07-14 15:44:36.059193400 +0100
81 +++ e:\reactos\dll\win32\wininet/urlcache.c 2015-07-20 14:40:55.736738800 +0100
82 @@ -202,6 +179,8 @@ typedef struct
84 /* List of all containers available */
85 static struct list UrlContainers = LIST_INIT(UrlContainers);
87 +BOOL bDefaultContainersAdded = FALSE;
89 static inline char *heap_strdupWtoUTF8(LPCWSTR str)
91 @@ -752,6 +731,8 @@ static void cache_containers_init(void)
92 static const WCHAR UrlSuffix[] = {'C','o','n','t','e','n','t','.','I','E','5',0};
93 static const WCHAR HistorySuffix[] = {'H','i','s','t','o','r','y','.','I','E','5',0};
94 static const WCHAR CookieSuffix[] = {0};
95 + /* ReactOS r50916 */
96 + static const WCHAR UserProfile[] = {'U','S','E','R','P','R','O','F','I','L','E',0};
99 int nFolder; /* CSIDL_* constant */
100 @@ -766,6 +747,13 @@ static void cache_containers_init(void)
104 + /* ReactOS r50916 */
105 + if (GetEnvironmentVariableW(UserProfile, NULL, 0) == 0 && GetLastError() == ERROR_ENVVAR_NOT_FOUND)
107 + TRACE("Environment variable 'USERPROFILE' does not exist!\n");
111 for (i = 0; i < sizeof(DefaultContainerData) / sizeof(DefaultContainerData[0]); i++)
113 WCHAR wszCachePath[MAX_PATH];
114 @@ -835,6 +823,10 @@ static DWORD cache_containers_find(const
116 return ERROR_INVALID_PARAMETER;
118 + /* ReactOS r54992 */
119 + if (!bDefaultContainersAdded)
120 + cache_containers_init();
122 LIST_FOR_EACH_ENTRY(container, &UrlContainers, cache_container, entry)
124 int prefix_len = strlen(container->cache_prefix);
125 @@ -861,6 +853,10 @@ static BOOL cache_containers_enum(char *
126 if (search_pattern && index > 0)
129 + /* ReactOS r54992 */
130 + if (!bDefaultContainersAdded)
131 + cache_containers_init();
133 LIST_FOR_EACH_ENTRY(container, &UrlContainers, cache_container, entry)