https://git.reactos.org/?p=reactos.git;a=commitdiff;h=bc01cef03a10c7b7059484...
commit bc01cef03a10c7b7059484790307cc5f16bdafbf Author: Amine Khaldi amine.khaldi@reactos.org AuthorDate: Sat Mar 24 13:17:01 2018 +0100 Commit: Amine Khaldi amine.khaldi@reactos.org CommitDate: Sat Mar 24 13:17:01 2018 +0100
[WININET] Sync with Wine Staging 3.3. CORE-14434 --- dll/win32/wininet/CMakeLists.txt | 4 +- dll/win32/wininet/cookie.c | 20 +++- dll/win32/wininet/dialogs.c | 32 ++++- dll/win32/wininet/ftp.c | 23 ++++ dll/win32/wininet/gopher.c | 12 +- dll/win32/wininet/http.c | 240 ++++++++++++++++++++++---------------- dll/win32/wininet/internet.c | 86 ++++++++++++-- dll/win32/wininet/internet.h | 92 ++------------- dll/win32/wininet/netconnection.c | 31 +++-- dll/win32/wininet/precomp.h | 64 ++++++++++ dll/win32/wininet/resource.h | 3 + dll/win32/wininet/rsrc.rc | 3 - dll/win32/wininet/urlcache.c | 27 ++++- dll/win32/wininet/utility.c | 19 ++- dll/win32/wininet/version.rc | 2 +- dll/win32/wininet/wininet.spec | 2 +- media/doc/README.WINE | 2 +- 17 files changed, 440 insertions(+), 222 deletions(-)
diff --git a/dll/win32/wininet/CMakeLists.txt b/dll/win32/wininet/CMakeLists.txt index 4508528adf..fc12adf7e5 100644 --- a/dll/win32/wininet/CMakeLists.txt +++ b/dll/win32/wininet/CMakeLists.txt @@ -22,7 +22,7 @@ list(APPEND SOURCE netconnection.c urlcache.c utility.c - internet.h) + precomp.h)
add_library(wininet SHARED ${SOURCE} @@ -34,5 +34,5 @@ set_module_type(wininet win32dll) target_link_libraries(wininet wine ${PSEH_LIB} zlib) add_delay_importlibs(wininet secur32 crypt32 cryptui) add_importlibs(wininet mpr shlwapi shell32 user32 advapi32 ws2_32 normaliz kernel32_vista msvcrt kernel32 ntdll) -add_pch(wininet internet.h SOURCE) +add_pch(wininet precomp.h SOURCE) add_cd_file(TARGET wininet DESTINATION reactos/system32 FOR all) diff --git a/dll/win32/wininet/cookie.c b/dll/win32/wininet/cookie.c index d06e0217dc..60b8335639 100644 --- a/dll/win32/wininet/cookie.c +++ b/dll/win32/wininet/cookie.c @@ -20,12 +20,28 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "internet.h" +#include "ws2tcpip.h" + +#include <stdarg.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <assert.h> + +#include "windef.h" +#include "winbase.h" +#include "wininet.h" +#include "lmcons.h" +#include "winerror.h"
-#include <lmcons.h> +#include "wine/debug.h" +#include "internet.h"
#define RESPONSE_TIMEOUT 30 /* FROM internet.c */
+ +WINE_DEFAULT_DEBUG_CHANNEL(wininet); + /* FIXME * Cookies could use A LOT OF MEMORY. We need some kind of memory management here! */ diff --git a/dll/win32/wininet/dialogs.c b/dll/win32/wininet/dialogs.c index 913a4ceaf5..b13b566a8e 100644 --- a/dll/win32/wininet/dialogs.c +++ b/dll/win32/wininet/dialogs.c @@ -18,13 +18,32 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
+#include "ws2tcpip.h" + +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "winreg.h" +#include "wininet.h" +#include "winnetwk.h" +#include "wine/debug.h" +#include "winerror.h" +#define NO_SHLWAPI_STREAM +#include "shlwapi.h" +#include "cryptuiapi.h" + #include "internet.h"
-#include <winnetwk.h> -#include <cryptuiapi.h> +#include "wine/unicode.h" + +#include "resource.h"
#define MAX_STRING_LEN 1024
+WINE_DEFAULT_DEBUG_CHANNEL(wininet); + struct WININET_ErrorDlgParams { http_request_t *req; @@ -554,6 +573,15 @@ BOOL WINAPI InternetShowSecurityInfoByURLW(LPCWSTR url, HWND window) return FALSE; }
+/*********************************************************************** + * ParseX509EncodedCertificateForListBoxEntry (@) + */ +DWORD WINAPI ParseX509EncodedCertificateForListBoxEntry(LPBYTE cert, DWORD len, LPSTR szlistbox, LPDWORD listbox) +{ + FIXME("stub: %p %d %s %p\n", cert, len, debugstr_a(szlistbox), listbox); + return ERROR_CALL_NOT_IMPLEMENTED; +} + /*********************************************************************** * ShowX509EncodedCertificate (@) */ diff --git a/dll/win32/wininet/ftp.c b/dll/win32/wininet/ftp.c index 7d8e40ae4f..e12e494160 100644 --- a/dll/win32/wininet/ftp.c +++ b/dll/win32/wininet/ftp.c @@ -27,8 +27,31 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
+#include "ws2tcpip.h" + +#include <stdarg.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <time.h> +#include <assert.h> + +#include "windef.h" +#include "winbase.h" +#include "wingdi.h" +#include "winuser.h" +#include "wininet.h" +#include "winnls.h" +#include "winerror.h" +#include "winreg.h" +#include "winternl.h" +#include "shlwapi.h" + +#include "wine/debug.h" #include "internet.h"
+WINE_DEFAULT_DEBUG_CHANNEL(wininet); + #define RESPONSE_TIMEOUT 30
typedef struct _ftp_session_t ftp_session_t; diff --git a/dll/win32/wininet/gopher.c b/dll/win32/wininet/gopher.c index 784beab58f..6688ce7a94 100644 --- a/dll/win32/wininet/gopher.c +++ b/dll/win32/wininet/gopher.c @@ -18,7 +18,17 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "internet.h" +#include "config.h" + +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "wininet.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(wininet);
/*********************************************************************** * GopherCreateLocatorA (WININET.@) diff --git a/dll/win32/wininet/http.c b/dll/win32/wininet/http.c index f9694ca454..06aac4bbea 100644 --- a/dll/win32/wininet/http.c +++ b/dll/win32/wininet/http.c @@ -27,15 +27,42 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "internet.h" +#include "config.h" + +#include <stdlib.h>
#ifdef HAVE_ZLIB # include <zlib.h> #endif
-#include <winternl.h> +#include "winsock2.h" +#include "ws2ipdef.h" + +#include <stdarg.h> +#include <stdio.h> +#include <time.h> +#include <assert.h> + +#include "windef.h" +#include "winbase.h" +#include "wininet.h" +#include "winerror.h" +#include "winternl.h" +#define NO_SHLWAPI_STREAM +#define NO_SHLWAPI_REG +#define NO_SHLWAPI_STRFCNS +#define NO_SHLWAPI_GDI +#include "shlwapi.h" +#include "sspi.h" +#include "wincrypt.h" +#include "winuser.h" + +#include "internet.h" +#include "wine/debug.h" +#include "wine/exception.h" +#include "wine/unicode.h"
-#include <wine/exception.h> +WINE_DEFAULT_DEBUG_CHANNEL(wininet);
static const WCHAR g_szHttp1_0[] = {'H','T','T','P','/','1','.','0',0}; static const WCHAR g_szHttp1_1[] = {'H','T','T','P','/','1','.','1',0}; @@ -742,10 +769,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) @@ -764,10 +799,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) @@ -2326,11 +2362,6 @@ static DWORD HTTPREQ_SetOption(object_header_t *hdr, DWORD option, void *buffer, if (!(req->session->appInfo->proxyPassword = heap_strdupW(buffer))) return ERROR_OUTOFMEMORY; return ERROR_SUCCESS;
- case INTERNET_OPTION_HTTP_DECODING: - if(size != sizeof(BOOL)) - return ERROR_INVALID_PARAMETER; - req->decoding = *(BOOL*)buffer; - return ERROR_SUCCESS; }
return INET_SetOption(hdr, option, buffer, size); @@ -2900,7 +2931,7 @@ static DWORD set_content_length(http_request_t *request) request->contentLength = ~0u; }
- if(request->decoding) { + if(request->hdr.decoding) { int encoding_idx;
static const WCHAR deflateW[] = {'d','e','f','l','a','t','e',0}; @@ -3286,6 +3317,7 @@ static DWORD HTTP_HttpOpenRequestW(http_session_t *session, request->hdr.htype = WH_HHTTPREQ; request->hdr.dwFlags = dwFlags; request->hdr.dwContext = dwContext; + request->hdr.decoding = session->hdr.decoding; request->contentLength = ~0u;
request->netconn_stream.data_stream.vtbl = &netconn_stream_vtbl; @@ -5032,7 +5064,7 @@ static DWORD HTTP_HttpSendRequestW(http_request_t *request, LPCWSTR lpszHeaders, res = set_content_length(request); if(res != ERROR_SUCCESS) goto lend; - if(!request->contentLength) + if(!request->contentLength && !secure_proxy_connect) http_release_netconn(request, TRUE);
if (!(request->hdr.dwFlags & INTERNET_FLAG_NO_AUTO_REDIRECT) && responseLen) @@ -5793,6 +5825,7 @@ DWORD HTTP_Connect(appinfo_t *hIC, LPCWSTR lpszServerName, session->hdr.dwFlags = dwFlags; session->hdr.dwContext = dwContext; session->hdr.dwInternalFlags |= dwInternalFlags; + session->hdr.decoding = hIC->hdr.decoding;
WININET_AddRef( &hIC->hdr ); session->appInfo = hIC; @@ -6050,127 +6083,128 @@ static LPWSTR * HTTP_InterpretHttpHeader(LPCWSTR buffer)
static DWORD HTTP_ProcessHeader(http_request_t *request, LPCWSTR field, LPCWSTR value, DWORD dwModifier) { - LPHTTPHEADERW lphttpHdr = NULL; + LPHTTPHEADERW lphttpHdr; INT index; BOOL request_only = !!(dwModifier & HTTP_ADDHDR_FLAG_REQ); - DWORD res = ERROR_HTTP_INVALID_HEADER; + DWORD res = ERROR_SUCCESS;
TRACE("--> %s: %s - 0x%08x\n", debugstr_w(field), debugstr_w(value), dwModifier);
EnterCriticalSection( &request->headers_section );
- /* REPLACE wins out over ADD */ - if (dwModifier & HTTP_ADDHDR_FLAG_REPLACE) - dwModifier &= ~HTTP_ADDHDR_FLAG_ADD; - - if (dwModifier & HTTP_ADDHDR_FLAG_ADD) - index = -1; - else - index = HTTP_GetCustomHeaderIndex(request, field, 0, request_only); - + index = HTTP_GetCustomHeaderIndex(request, field, 0, request_only); if (index >= 0) { - if (dwModifier & HTTP_ADDHDR_FLAG_ADD_IF_NEW) - { - LeaveCriticalSection( &request->headers_section ); - return ERROR_HTTP_INVALID_HEADER; - } lphttpHdr = &request->custHeaders[index]; - } - else if (value) - { - HTTPHEADERW hdr;
- hdr.lpszField = (LPWSTR)field; - hdr.lpszValue = (LPWSTR)value; - hdr.wFlags = hdr.wCount = 0; + /* replace existing header if FLAG_REPLACE is given */ + if (dwModifier & HTTP_ADDHDR_FLAG_REPLACE) + { + HTTP_DeleteCustomHeader( request, index );
- if (dwModifier & HTTP_ADDHDR_FLAG_REQ) - hdr.wFlags |= HDR_ISREQUEST; + if (value && value[0]) + { + HTTPHEADERW hdr;
- res = HTTP_InsertCustomHeader(request, &hdr); - LeaveCriticalSection( &request->headers_section ); - return res; - } - /* no value to delete */ - else - { - LeaveCriticalSection( &request->headers_section ); - return ERROR_SUCCESS; - } + hdr.lpszField = (LPWSTR)field; + hdr.lpszValue = (LPWSTR)value; + hdr.wFlags = hdr.wCount = 0;
- if (dwModifier & HTTP_ADDHDR_FLAG_REQ) - lphttpHdr->wFlags |= HDR_ISREQUEST; - else - lphttpHdr->wFlags &= ~HDR_ISREQUEST; + if (dwModifier & HTTP_ADDHDR_FLAG_REQ) + hdr.wFlags |= HDR_ISREQUEST;
- if (dwModifier & HTTP_ADDHDR_FLAG_REPLACE) - { - HTTP_DeleteCustomHeader( request, index ); + res = HTTP_InsertCustomHeader( request, &hdr ); + }
- if (value && value[0]) + goto out; + } + + /* do not add new header if FLAG_ADD_IF_NEW is set */ + if (dwModifier & HTTP_ADDHDR_FLAG_ADD_IF_NEW) { - HTTPHEADERW hdr; + res = ERROR_HTTP_INVALID_HEADER; /* FIXME */ + goto out; + }
- hdr.lpszField = (LPWSTR)field; - hdr.lpszValue = (LPWSTR)value; - hdr.wFlags = hdr.wCount = 0; + /* handle appending to existing header */ + if (dwModifier & COALESCEFLAGS) + { + LPWSTR lpsztmp; + WCHAR ch = 0; + INT len = 0; + INT origlen = strlenW(lphttpHdr->lpszValue); + INT valuelen = strlenW(value);
+ /* FIXME: Should it really clear HDR_ISREQUEST? */ if (dwModifier & HTTP_ADDHDR_FLAG_REQ) - hdr.wFlags |= HDR_ISREQUEST; - - res = HTTP_InsertCustomHeader(request, &hdr); - LeaveCriticalSection( &request->headers_section ); - return res; - } + lphttpHdr->wFlags |= HDR_ISREQUEST; + else + lphttpHdr->wFlags &= ~HDR_ISREQUEST;
- LeaveCriticalSection( &request->headers_section ); - return ERROR_SUCCESS; - } - else if (dwModifier & COALESCEFLAGS) - { - LPWSTR lpsztmp; - WCHAR ch = 0; - INT len = 0; - INT origlen = strlenW(lphttpHdr->lpszValue); - INT valuelen = strlenW(value); + if (dwModifier & HTTP_ADDHDR_FLAG_COALESCE_WITH_COMMA) + { + ch = ','; + lphttpHdr->wFlags |= HDR_COMMADELIMITED; + } + else if (dwModifier & HTTP_ADDHDR_FLAG_COALESCE_WITH_SEMICOLON) + { + ch = ';'; + lphttpHdr->wFlags |= HDR_COMMADELIMITED; + }
- if (dwModifier & HTTP_ADDHDR_FLAG_COALESCE_WITH_COMMA) - { - ch = ','; - lphttpHdr->wFlags |= HDR_COMMADELIMITED; - } - else if (dwModifier & HTTP_ADDHDR_FLAG_COALESCE_WITH_SEMICOLON) - { - ch = ';'; - lphttpHdr->wFlags |= HDR_COMMADELIMITED; - } + len = origlen + valuelen + ((ch > 0) ? 2 : 0);
- len = origlen + valuelen + ((ch > 0) ? 2 : 0); + lpsztmp = heap_realloc(lphttpHdr->lpszValue, (len+1)*sizeof(WCHAR)); + if (lpsztmp) + { + lphttpHdr->lpszValue = lpsztmp; + /* FIXME: Increment lphttpHdr->wCount. Perhaps lpszValue should be an array */ + if (ch > 0) + { + lphttpHdr->lpszValue[origlen] = ch; + origlen++; + lphttpHdr->lpszValue[origlen] = ' '; + origlen++; + }
- lpsztmp = heap_realloc(lphttpHdr->lpszValue, (len+1)*sizeof(WCHAR)); - if (lpsztmp) - { - lphttpHdr->lpszValue = lpsztmp; - /* FIXME: Increment lphttpHdr->wCount. Perhaps lpszValue should be an array */ - if (ch > 0) + memcpy(&lphttpHdr->lpszValue[origlen], value, valuelen*sizeof(WCHAR)); + lphttpHdr->lpszValue[len] = '\0'; + } + else { - lphttpHdr->lpszValue[origlen] = ch; - origlen++; - lphttpHdr->lpszValue[origlen] = ' '; - origlen++; + WARN("heap_realloc (%d bytes) failed\n",len+1); + res = ERROR_OUTOFMEMORY; }
- memcpy(&lphttpHdr->lpszValue[origlen], value, valuelen*sizeof(WCHAR)); - lphttpHdr->lpszValue[len] = '\0'; - res = ERROR_SUCCESS; - } - else - { - WARN("heap_realloc (%d bytes) failed\n",len+1); - res = ERROR_OUTOFMEMORY; + goto out; } } + + /* FIXME: What about other combinations? */ + if ((dwModifier & ~HTTP_ADDHDR_FLAG_REQ) == HTTP_ADDHDR_FLAG_REPLACE) + { + res = ERROR_HTTP_HEADER_NOT_FOUND; + goto out; + } + + /* FIXME: What if value == ""? */ + if (value) + { + HTTPHEADERW hdr; + + hdr.lpszField = (LPWSTR)field; + hdr.lpszValue = (LPWSTR)value; + hdr.wFlags = hdr.wCount = 0; + + if (dwModifier & HTTP_ADDHDR_FLAG_REQ) + hdr.wFlags |= HDR_ISREQUEST; + + res = HTTP_InsertCustomHeader( request, &hdr ); + goto out; + } + + /* FIXME: What if value == NULL? */ +out: TRACE("<-- %d\n", res); LeaveCriticalSection( &request->headers_section ); return res; diff --git a/dll/win32/wininet/internet.c b/dll/win32/wininet/internet.c index c3bf261572..6f8632a2f4 100644 --- a/dll/win32/wininet/internet.c +++ b/dll/win32/wininet/internet.c @@ -26,7 +26,46 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
+#include "config.h" + +#ifdef HAVE_CORESERVICES_CORESERVICES_H +#define GetCurrentThread MacGetCurrentThread +#define LoadResource MacLoadResource +#include <CoreServices/CoreServices.h> +#undef GetCurrentThread +#undef LoadResource +#undef DPRINTF +#endif + +#include "winsock2.h" +#include "ws2ipdef.h" + +#include <string.h> +#include <stdarg.h> +#include <stdio.h> +#include <stdlib.h> +#include <ctype.h> +#include <assert.h> + +#include "windef.h" +#include "winbase.h" +#include "winreg.h" +#include "winuser.h" +#include "wininet.h" +#include "winnls.h" +#include "wine/debug.h" +#include "winerror.h" +#define NO_SHLWAPI_STREAM +#include "shlwapi.h" + +#include "wine/exception.h" + #include "internet.h" +#include "resource.h" + +#include "wine/unicode.h" + +WINE_DEFAULT_DEBUG_CHANNEL(wininet);
typedef struct { @@ -1625,7 +1664,7 @@ BOOL WINAPI InternetCrackUrlW(const WCHAR *lpszUrl, DWORD dwUrlLength, DWORD dwF
if (dwFlags & ICU_DECODE) { - WCHAR *url_tmp; + WCHAR *url_tmp, *buffer; DWORD len = dwUrlLength + 1; BOOL ret;
@@ -1634,9 +1673,24 @@ BOOL WINAPI InternetCrackUrlW(const WCHAR *lpszUrl, DWORD dwUrlLength, DWORD dwF SetLastError(ERROR_OUTOFMEMORY); return FALSE; } - ret = InternetCanonicalizeUrlW(url_tmp, url_tmp, &len, ICU_DECODE | ICU_NO_ENCODE); + + buffer = url_tmp; + ret = InternetCanonicalizeUrlW(url_tmp, buffer, &len, ICU_DECODE | ICU_NO_ENCODE); + if (!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER) + { + buffer = heap_alloc(len * sizeof(WCHAR)); + if (!buffer) + { + SetLastError(ERROR_OUTOFMEMORY); + heap_free(url_tmp); + return FALSE; + } + ret = InternetCanonicalizeUrlW(url_tmp, buffer, &len, ICU_DECODE | ICU_NO_ENCODE); + } if (ret) - ret = InternetCrackUrlW(url_tmp, len, dwFlags & ~ICU_DECODE, lpUC); + ret = InternetCrackUrlW(buffer, len, dwFlags & ~ICU_DECODE, lpUC); + + if (buffer != url_tmp) heap_free(buffer); heap_free(url_tmp); return ret; } @@ -2271,7 +2325,8 @@ static WCHAR *get_proxy_autoconfig_url(void) CFRelease( settings ); return ret; #else - FIXME( "no support on this platform\n" ); + static int once; + if (!once++) FIXME( "no support on this platform\n" ); return NULL; #endif } @@ -2821,10 +2876,21 @@ BOOL WINAPI InternetSetOptionW(HINTERNET hInternet, DWORD dwOption, FIXME("Option INTERNET_OPTION_DISABLE_AUTODIAL; STUB\n"); break; case INTERNET_OPTION_HTTP_DECODING: - FIXME("INTERNET_OPTION_HTTP_DECODING; STUB\n"); - SetLastError(ERROR_INTERNET_INVALID_OPTION); - ret = FALSE; + { + if (!lpwhh) + { + SetLastError(ERROR_INTERNET_INCORRECT_HANDLE_TYPE); + return FALSE; + } + if (!lpBuffer || dwBufferLength != sizeof(BOOL)) + { + SetLastError(ERROR_INVALID_PARAMETER); + ret = FALSE; + } + else + lpwhh->decoding = *(BOOL *)lpBuffer; break; + } case INTERNET_OPTION_COOKIES_3RD_PARTY: FIXME("INTERNET_OPTION_COOKIES_3RD_PARTY; STUB\n"); SetLastError(ERROR_INTERNET_INVALID_OPTION); @@ -2911,6 +2977,12 @@ BOOL WINAPI InternetSetOptionW(HINTERNET hInternet, DWORD dwOption, ret = (res == ERROR_SUCCESS); break; } + case INTERNET_OPTION_SETTINGS_CHANGED: + FIXME("INTERNET_OPTION_SETTINGS_CHANGED; STUB\n"); + break; + case INTERNET_OPTION_REFRESH: + FIXME("INTERNET_OPTION_REFRESH; STUB\n"); + break; default: FIXME("Option %d STUB\n",dwOption); SetLastError(ERROR_INTERNET_INVALID_OPTION); diff --git a/dll/win32/wininet/internet.h b/dll/win32/wininet/internet.h index 23567364f4..e80f6036f0 100644 --- a/dll/win32/wininet/internet.h +++ b/dll/win32/wininet/internet.h @@ -23,69 +23,13 @@ #ifndef _WINE_INTERNET_H_ #define _WINE_INTERNET_H_
-#include <wine/config.h> - -#include <assert.h> -#include <stdio.h> - -#define _INC_WINDOWS -#define COM_NO_WINDOWS_H - -#define NONAMELESSUNION -#define NONAMELESSSTRUCT - -#include <windef.h> -#include <winbase.h> -#include <winreg.h> -#include <winuser.h> -#include <wininet.h> -#define NO_SHLWAPI_STREAM -#define NO_SHLWAPI_REG -#define NO_SHLWAPI_GDI -#include <shlwapi.h> - -#include <wine/list.h> -#include <wine/debug.h> -#include <wine/unicode.h> - -#ifdef HAVE_ARPA_INET_H -# include <arpa/inet.h> -#endif -#ifdef HAVE_NETDB_H -# include <netdb.h> -#endif -#ifdef HAVE_NETINET_IN_H -# include <sys/types.h> -# include <netinet/in.h> -#endif -#ifdef HAVE_SYS_IOCTL_H -# include <sys/ioctl.h> -#endif -#ifdef HAVE_SYS_POLL_H -# include <sys/poll.h> -#endif -#ifdef HAVE_SYS_SOCKET_H -# include <sys/socket.h> -#endif -#ifdef HAVE_SYS_TIME_H -# include <sys/time.h> -#endif -#ifdef HAVE_UNISTD_H -# include <unistd.h> -#endif - -#if defined(__MINGW32__) || defined (_MSC_VER) -#include <ws2tcpip.h> -#else -#define closesocket close -#define ioctlsocket ioctl -#endif /* __MINGW32__ */ - -#include <winineti.h> - -#include "resource.h" - -WINE_DEFAULT_DEBUG_CHANNEL(wininet); +#include "wine/unicode.h" +#include "wine/heap.h" +#include "wine/list.h" + +#include <time.h> + +#include "winineti.h"
extern HMODULE WININET_hModule DECLSPEC_HIDDEN;
@@ -146,31 +90,11 @@ typedef struct BOOL is_valid_netconn(netconn_t *) DECLSPEC_HIDDEN; void close_netconn(netconn_t *) DECLSPEC_HIDDEN;
-static inline void * __WINE_ALLOC_SIZE(1) heap_alloc(size_t len) -{ - return HeapAlloc(GetProcessHeap(), 0, len); -} - -static inline void * __WINE_ALLOC_SIZE(1) heap_alloc_zero(size_t len) -{ - return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len); -} - -static inline void * __WINE_ALLOC_SIZE(2) heap_realloc(void *mem, size_t len) -{ - return HeapReAlloc(GetProcessHeap(), 0, mem, len); -} - static inline void * __WINE_ALLOC_SIZE(2) heap_realloc_zero(void *mem, size_t len) { return HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, mem, len); }
-static inline BOOL heap_free(void *mem) -{ - return HeapFree(GetProcessHeap(), 0, mem); -} - static inline LPWSTR heap_strdupW(LPCWSTR str) { LPWSTR ret = NULL; @@ -357,6 +281,7 @@ struct _object_header_t ULONG ErrorMask; DWORD dwInternalFlags; LONG refs; + BOOL decoding; INTERNET_STATUS_CALLBACK lpfnStatusCB; struct list entry; struct list children; @@ -453,7 +378,6 @@ typedef struct DWORD read_size; /* valid data size in read_buf */ BYTE read_buf[READ_BUFFER_SIZE]; /* buffer for already read but not returned data */
- BOOL decoding; data_stream_t *data_stream; netconn_stream_t netconn_stream; } http_request_t; diff --git a/dll/win32/wininet/netconnection.c b/dll/win32/wininet/netconnection.c index 648abc8f7c..b91c6be8dc 100644 --- a/dll/win32/wininet/netconnection.c +++ b/dll/win32/wininet/netconnection.c @@ -21,20 +21,27 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
+#define NONAMELESSUNION + +#include "ws2tcpip.h" + +#include <time.h> +#include <stdarg.h> +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <assert.h> + +#include "wine/library.h" +#include "windef.h" +#include "winbase.h" +#include "wininet.h" +#include "winerror.h" + +#include "wine/debug.h" #include "internet.h"
-#include <sys/types.h> -#ifdef HAVE_POLL_H -#include <poll.h> -#endif -#ifdef HAVE_SYS_FILIO_H -# include <sys/filio.h> -#endif -#ifdef HAVE_NETINET_TCP_H -# include <netinet/tcp.h> -#endif - -#include <errno.h> +WINE_DEFAULT_DEBUG_CHANNEL(wininet);
static DWORD netconn_verify_cert(netconn_t *conn, PCCERT_CONTEXT cert, HCERTSTORE store) { diff --git a/dll/win32/wininet/precomp.h b/dll/win32/wininet/precomp.h new file mode 100644 index 0000000000..3e26831a16 --- /dev/null +++ b/dll/win32/wininet/precomp.h @@ -0,0 +1,64 @@ + +#ifndef _WININET_PRECOMP_H_ +#define _WININET_PRECOMP_H_ + +#include <wine/config.h> + +#include <assert.h> +#include <stdio.h> + +#define _INC_WINDOWS +#define COM_NO_WINDOWS_H + +#define NONAMELESSUNION +#define NONAMELESSSTRUCT + +#include <windef.h> +#include <winbase.h> +#include <winreg.h> +#include <winuser.h> +#include <wininet.h> +#define NO_SHLWAPI_STREAM +#define NO_SHLWAPI_REG +#define NO_SHLWAPI_GDI +#include <shlwapi.h> + +#include <wine/debug.h> + +#ifdef HAVE_ARPA_INET_H +# include <arpa/inet.h> +#endif +#ifdef HAVE_NETDB_H +# include <netdb.h> +#endif +#ifdef HAVE_NETINET_IN_H +# include <sys/types.h> +# include <netinet/in.h> +#endif +#ifdef HAVE_SYS_IOCTL_H +# include <sys/ioctl.h> +#endif +#ifdef HAVE_SYS_POLL_H +# include <sys/poll.h> +#endif +#ifdef HAVE_SYS_SOCKET_H +# include <sys/socket.h> +#endif +#ifdef HAVE_SYS_TIME_H +# include <sys/time.h> +#endif +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif + +#if defined(__MINGW32__) || defined (_MSC_VER) +#include <ws2tcpip.h> +#else +#define closesocket close +#define ioctlsocket ioctl +#endif /* __MINGW32__ */ + +#include "internet.h" +#include "resource.h" + +#endif /* !_WININET_PRECOMP_H_ */ diff --git a/dll/win32/wininet/resource.h b/dll/win32/wininet/resource.h index cf1ace7bf1..d1fa2fbcee 100644 --- a/dll/win32/wininet/resource.h +++ b/dll/win32/wininet/resource.h @@ -20,6 +20,9 @@
#pragma once
+#include <windef.h> +#include <winuser.h> + #define IDD_INVCERTDLG 0x398 #define IDD_AUTHDLG 0x399 #define IDD_PROXYDLG 0x400 diff --git a/dll/win32/wininet/rsrc.rc b/dll/win32/wininet/rsrc.rc index 8f6f7b6ff7..7dd7ab41f3 100644 --- a/dll/win32/wininet/rsrc.rc +++ b/dll/win32/wininet/rsrc.rc @@ -18,9 +18,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include <windef.h> -#include <winuser.h> - #include "resource.h"
/* diff --git a/dll/win32/wininet/urlcache.c b/dll/win32/wininet/urlcache.c index 11c1329185..30a469a93a 100644 --- a/dll/win32/wininet/urlcache.c +++ b/dll/win32/wininet/urlcache.c @@ -22,10 +22,33 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
+#define NONAMELESSUNION + +#include "ws2tcpip.h" + +#include <stdarg.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <time.h> + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "wininet.h" +#include "winineti.h" +#include "winerror.h" +#include "winreg.h" +#include "shlwapi.h" +#include "shlobj.h" +#include "shellapi.h" + #include "internet.h"
-#include <shlobj.h> -#include <shellapi.h> +#include "wine/unicode.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(wininet);
static const char urlcache_ver_prefix[] = "WINE URLCache Ver "; static const char urlcache_ver[] = "0.2012001"; diff --git a/dll/win32/wininet/utility.c b/dll/win32/wininet/utility.c index ca7a7687ac..0e67da98db 100644 --- a/dll/win32/wininet/utility.c +++ b/dll/win32/wininet/utility.c @@ -22,10 +22,27 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
+#include "ws2tcpip.h" + +#include <stdarg.h> +#include <stdlib.h> +#include <string.h> +#include <time.h> + +#include "windef.h" +#include "winbase.h" +#include "wininet.h" +#include "winnls.h" + +#include "wine/debug.h" #include "internet.h"
-// ReactOS +#ifdef __REACTOS__ +#include <stdio.h> #include "inet_ntop.c" +#endif + +WINE_DEFAULT_DEBUG_CHANNEL(wininet);
#define TIME_STRING_LEN 30
diff --git a/dll/win32/wininet/version.rc b/dll/win32/wininet/version.rc index d5d9ea3a34..1d3212abd5 100644 --- a/dll/win32/wininet/version.rc +++ b/dll/win32/wininet/version.rc @@ -25,4 +25,4 @@ #define WINE_PRODUCTVERSION 8,00,7601,17601 #define WINE_PRODUCTVERSION_STR "8.00.7601.17601"
-#include <wine/wine_common_ver.rc> +#include "wine/wine_common_ver.rc" diff --git a/dll/win32/wininet/wininet.spec b/dll/win32/wininet/wininet.spec index 38fd03b770..7ef28d6777 100644 --- a/dll/win32/wininet/wininet.spec +++ b/dll/win32/wininet/wininet.spec @@ -216,7 +216,7 @@ @ stdcall IsUrlCacheEntryExpiredA(str long ptr) @ stdcall IsUrlCacheEntryExpiredW(wstr long ptr) @ stdcall LoadUrlCacheContent() -@ stdcall -stub ParseX509EncodedCertificateForListBoxEntry(ptr long str ptr) +@ stdcall ParseX509EncodedCertificateForListBoxEntry(ptr long str ptr) @ stdcall PrivacyGetZonePreferenceW(long long ptr ptr ptr) @ stdcall PrivacySetZonePreferenceW(long long long wstr) @ stdcall ReadUrlCacheEntryStream(ptr long ptr ptr long) diff --git a/media/doc/README.WINE b/media/doc/README.WINE index 15c38ec55e..8864a5e8c0 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -201,7 +201,7 @@ reactos/dll/win32/windowscodecsext # Synced to WineStaging-2.9 reactos/dll/win32/winemp3.acm # Synced to WineStaging-3.3 reactos/dll/win32/wing32 # Synced to WineStaging-3.3 reactos/dll/win32/winhttp # Synced to WineStaging-3.3 -reactos/dll/win32/wininet # Synced to Wine-3.0 +reactos/dll/win32/wininet # Synced to WineStaging-3.3 reactos/dll/win32/winmm # Forked at Wine-20050628 reactos/dll/win32/winmm/midimap # Forked at Wine-20050628 reactos/dll/win32/winmm/wavemap # Forked at Wine-20050628