Commit Graph

689 Commits

Author SHA1 Message Date
Hans Leidekker d6a59f755e wininet: Only set the content length header if it's not explicitly set by the user. 2014-05-26 21:15:37 +09:00
Hans Leidekker 5b56624a1b wininet: Handle secure proxy connections inside the main loop.
This adds support for authenticated secure proxy connections.
2014-05-06 13:49:09 +02:00
Nikolay Sivov d87724e626 wininet: Remove some dead code (Coverity). 2014-04-15 21:03:54 +02:00
Jacek Caban 22e75c69ab wininet: Added support for raw deflate content encoding. 2014-03-05 19:17:00 +01:00
Jacek Caban 2667a5376c wininet: Get rid of no longer needed hack in gzip_read that prevents consuming the whole input buffer until we're at the end of stream. 2014-03-05 19:16:58 +01:00
Jacek Caban b7c47c033c wininet: Use non-blocking reads in netconn_drain_content. 2014-03-05 19:16:55 +01:00
Jacek Caban f9a16d70e2 wininet: Get rid of no longer needed size calculation in netconn_read. 2014-03-05 19:16:53 +01:00
Jacek Caban 0767e06044 wininet: Use blocking_mode_t instead of flags in NETCON_recv. 2014-03-05 19:16:46 +01:00
Jacek Caban ac58c3e8bc wininet: Renamed read_mode_t to blocking_mode_t. 2014-03-05 19:16:41 +01:00
Frédéric Delanoy 43d6a45c4e wininet: Constify some character strings. 2013-12-19 17:09:14 +01:00
Hans Leidekker 6c7c15059a wininet: Separate socket destruction from destruction of the connection object. 2013-12-11 12:57:01 +01:00
Ričardas Barkauskas 12e6c14e7c wininet: Move handling of existing request connections to open_http_connection. 2013-11-26 10:21:03 +01:00
Ričardas Barkauskas 992c2bd3e5 wininet: Reset data stream for existing request connections. 2013-11-26 10:20:58 +01:00
Hans Leidekker a448bbf880 wininet: Reading past end-of-file in chunked mode returns success.
Found by Andrew Eikum.
2013-11-21 19:39:02 +01:00
Ričardas Barkauskas 6c0ee62d7a wininet: Check if connection is alive before sending request. 2013-11-07 13:15:50 +01:00
Frédéric Delanoy b4e4831d1b wininet: Use BOOL type where appropriate. 2013-10-10 10:44:49 +02:00
Jacek Caban 47f490e1f6 wininet: Added support for locking HTTP request files. 2013-10-04 17:46:23 +02:00
Jacek Caban c1bab59e81 wininet: Forward InternetLockRequestFile to handle-specific functions. 2013-10-04 17:46:23 +02:00
Jacek Caban c58317b5b4 wininet: Moved request file info to separated struct. 2013-10-04 17:46:23 +02:00
Hans Leidekker c0e1dda04c wininet: Don't assume that end of chunk means end of stream. 2013-09-20 11:11:54 +02:00
Hans Leidekker daa0acdbcf wininet: Fix calculation of content length from chunk size. 2013-09-03 17:00:40 +02:00
Hans Leidekker 1bf936c900 wininet: Replacing a header with an empty value deletes it. 2013-08-29 19:56:18 +02:00
Hans Leidekker 0c9321eb0f wininet: Handle NULL input string in str_to_buffer. 2013-07-31 22:26:57 +02:00
Hans Leidekker 5f346f63ba wininet: Ignore INTERNET_FLAG_NO_CACHE_WRITE only for GET requests. 2013-07-31 22:26:57 +02:00
Jacek Caban 10389b272d wininet: Ignore missing status text in response headers. 2013-07-19 16:27:31 +02:00
Daniel Lehman d853009ef8 wininet: Remove old FIXME about bypassing proxy. 2013-05-08 20:43:23 +02:00
Daniel Lehman cbeb11b5f8 wininet: Copy should_bypass_proxy and domain_matches from winhttp. 2013-05-08 20:43:22 +02:00
Piotr Caban 33d62f3f17 wininet: Handle NULL req->netconn in INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT query. 2013-05-03 21:39:25 +02:00
Piotr Caban dd35601b07 wininet: Handle NULL req->netconn in INTERNET_DIAGNOSTIC_SOCKET_INFO query. 2013-05-03 21:39:24 +02:00
Piotr Caban 422fb313d3 wininet: Get rid of rawHeaders field in request_t structure. 2013-04-30 18:44:47 +02:00
Piotr Caban 566b14479c wininet: Add current raw headers to cache. 2013-04-30 18:44:47 +02:00
Piotr Caban 7883976722 wininet: Delete Content-Encoding header when uncompressing data. 2013-04-30 18:44:46 +02:00
Piotr Caban 259ffa2a1a wininet: Take HTTP_QUERY_FLAG_REQUEST_HEADERS flag into account when creating HTTP_QUERY_RAW_HEADERS data information. 2013-04-30 18:44:46 +02:00
Piotr Caban e092233396 wininet: Create raw HTTP headers dynamically. 2013-04-30 18:44:46 +02:00
Hans Leidekker 736a4239a0 wininet: Always return errors from NETCON_recv. 2013-04-25 13:40:02 +02:00
Hans Leidekker 2145b637fd wininet: Get rid of the clear parameter to HTTP_GetResponseHeaders. 2013-04-25 13:40:01 +02:00
Piotr Caban 4c4a922e27 wininet: Improve searching for no-store header in HTTP response. 2013-04-24 14:32:34 +02:00
Hans Leidekker 54df9c9101 wininet: Include the Proxy-Connection header in the keep-alive check. 2013-04-22 12:37:51 +02:00
Hans Leidekker bedf296a27 wininet: Add support for INTERNET_OPTION_PROXY_USERNAME and INTERNET_OPTION_PROXY_PASSWORD. 2013-04-22 12:37:51 +02:00
Hans Leidekker 6f78a63b5b wininet: Don't strip the port from URLs returned by InternetQueryOption(INTERNET_OPTION_URL). 2013-04-22 12:37:51 +02:00
Hans Leidekker 578a1a6b26 wininet: Fix a request string leak. 2013-04-22 12:37:51 +02:00
Piotr Caban ef4db477f0 wininet: Correctly set SYSTEMTIME year in HTTP_HttpQueryInfoW. 2013-04-01 18:17:28 +02:00
Jacek Caban c6005aabcd wininet: Use parsed status_code to test for CONTINUE HTTP response. 2013-03-15 11:49:59 +01:00
Piotr Caban bbbc6d119b wininet: Don't create cache file if it's forbidden. 2013-03-13 17:11:57 +01:00
Andrew Talbot ae77b3d368 wininet: Avoid signed-unsigned integer comparisons. 2013-03-13 11:29:29 +01:00
Jacek Caban d1ce8ba053 wininet: Don't pass expected cache file size to CreateUrlCacheEntry if it's unknown. 2013-03-08 18:11:05 +01:00
Jacek Caban 7d8c8af9d7 wininet: Fixed crash in chunked_read if netconn is not available. 2013-03-07 19:35:03 +01:00
Hans Leidekker 6a609c21bb wininet: Port resolution doesn't depend on the secure flag. 2013-03-06 15:10:44 +01:00
Jacek Caban c6ee6d6c9e wininet: Renamed useSSL to secure and set it after secure connection is established. 2013-03-01 18:03:30 +01:00
Jacek Caban 8ca611a598 wininet: Moved dialog-related functions to dialog.c. 2013-02-26 18:18:46 +01:00
Jacek Caban 376a4f7837 wininet: Don't call get_avail_data multiple times in HTTP_ReceiveRequestData. 2013-02-26 18:18:40 +01:00
Jacek Caban 851866e22a wininet: Set available bytes in InternetQueryDataAvailable even if it ends up in async call. 2013-02-14 20:05:05 +01:00
Jacek Caban f824e20010 wininet: Get rid of WORKREQ* types. 2013-01-30 13:05:28 +01:00
Jacek Caban 7ca22d701d wininet: Moved WORKREQ_HTTPENDREQUESTW out of WORKREQUEST. 2013-01-29 17:50:17 +01:00
Jacek Caban 023abdacdb wininet: Moved WORKREQ_HTTPREADFILEEX out of WORKREQUEST. 2013-01-28 14:05:55 +01:00
Jacek Caban 940a67c8a5 wininet: Moved WORKREQ_HTTPSENDREQUESTW out of WORKREQUEST. 2013-01-28 14:05:49 +01:00
Jacek Caban 63e6a4b2e1 wininet: Moved WORKREQUEST allocation to INTERNET_AsyncCall callers. 2013-01-28 14:05:46 +01:00
Jacek Caban 0c02e35841 wininet: Properly handle output buffer size in InternetGetCookieW. 2012-12-28 11:26:52 +01:00
Jacek Caban bfad905bd8 wininet: Fixed handling empty HTTP version string in HttpOpenRequest. 2012-12-10 11:27:21 +01:00
Jacek Caban 5554292284 wininet: Use generic ReadFileEx entry in InternetReadFileExA and get rid of ReadFileExA entry. 2012-11-23 18:06:09 +01:00
Jacek Caban 52144829d1 wininet: Don't take INTERNET_BUFFERSW as argument in object's ReadFileEx entry. 2012-11-23 18:06:08 +01:00
Jacek Caban 3e23b5e589 wininet: Use proxy settings directly from http_request_t in a few more places. 2012-11-19 16:35:17 +01:00
Jacek Caban 5fb49243af wininet: Use processed string from server_t for constructing proxy path. 2012-11-19 16:35:16 +01:00
Jacek Caban 3cf2838a93 wininet: Store more useful strings in server_t. 2012-11-19 16:35:16 +01:00
Jacek Caban e1d26a24ed wininet: Allow passing INTERNET_INVALID_PORT_NUMBER port to get_server. 2012-11-19 16:35:15 +01:00
Jacek Caban cdf25ee469 wininet: Store an info if connection is HTTPS in server_t. 2012-11-19 16:35:14 +01:00
Jacek Caban bd42c0416a wininet: Fixed HTTP CONNECT secure connection. 2012-11-16 17:42:47 +01:00
Jacek Caban c8da35729c wininet: Store both proxy and destination host in http_request_t. 2012-11-16 17:42:46 +01:00
Jacek Caban 54639c5dc5 wininet: Commit cache file as soon as all data is written. 2012-11-02 19:47:19 +01:00
Jacek Caban b012765e91 wininet: Write received data to cache before notifying progress. 2012-11-02 19:47:18 +01:00
Francois Gouget 2606b85687 wininet: Check for the 'http:' protocol in a locale independent way. 2012-09-25 11:42:38 +02:00
Dan Kegel 766eecaf07 wininet: Don't evaluate netconn_get_avail_data() twice in netconn_read(). 2012-07-11 10:09:56 -05:00
Jacek Caban c400117027 wininet: Try harder to reuse connection after authorization. 2012-07-02 19:18:08 +02:00
Thomas Faber 7d24e59229 wininet: Use the correct struct in a sizeof. 2012-06-18 11:59:41 +02:00
Jacek Caban 120c413f39 wininet: Fixed returned buffer size in HttpQueryInfo(HTTP_QUERY_STATUS_CODE) when insufficient buffer is passed. 2012-06-15 20:29:28 +02:00
Alexandre Julliard 3521e1b89b wininet: Fix a compiler warning on Mingw. 2012-06-15 18:35:44 +02:00
Thomas Faber 0b60b8f35a wininet: Correctly fail INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT if libssl is not available. 2012-06-15 18:35:33 +02:00
Jacek Caban 6c764fbd47 wininet: Added InternetGetSecurityInfoByURL[AW] implementation. 2012-06-11 12:19:07 +02:00
Jacek Caban d8b5f468ab wininet: Added support for undocumented InternetSetOption(99) call. 2012-06-07 16:07:11 +02:00
Jacek Caban 8dbc39b4be wininet: Properly set flags in InternetSetOption(INTERNET_OPTION_SECURITY_FLAGS). 2012-06-06 20:54:22 +02:00
Jacek Caban 0133683c46 wininet: Added support for undocumented InternetQueryOption(98). 2012-06-05 10:23:54 +02:00
Jacek Caban 37e483d567 wininet: Use CRLF separator in INTERNET_CERTIFICATE_INFO. 2012-05-30 17:17:56 +02:00
Jacek Caban 2ed97ebe43 wininet: Get rid of no longer used serverName and serverPort from http_session_t. 2012-05-29 10:44:08 +02:00
Jacek Caban 868575a416 wininet: Store certificate error information in security flags. 2012-05-25 16:58:56 +02:00
Jacek Caban f8f2273b7c wininet: Added INTERNET_OPTION_SETTINGS_CHANGED semi-stub implementation. 2012-05-25 16:48:16 +02:00
Jacek Caban 95c1b74fc9 wininet: Store server_t on the list until clean up. 2012-05-25 16:48:11 +02:00
Jacek Caban f3dd75d8a4 wininet: Set SECURITY_FLAG_STRENGTH_* flags in NETCONN_secure_connect. 2012-05-25 16:48:06 +02:00
Jacek Caban 90ec92dfd1 wininet: Set SECURITY_FLAG_SECURRE in NETCON_secure_connect. 2012-05-25 16:48:01 +02:00
Jacek Caban 59a0ab54cb wininet: Store security flags in server_t. 2012-05-25 16:47:57 +02:00
Jacek Caban 3aeb8eb6b6 wininet: Store server_t in http_request_t. 2012-05-25 16:47:52 +02:00
Jacek Caban 27af81972f wininet: Added real implementation of InternetQueryOption(INTERNET_OPTION_REQUEST_FLAGS). 2012-05-24 20:08:46 +02:00
Alexander Morozov ef95a79384 wininet: Add "Content-Disposition" field. 2012-05-24 19:53:43 +02:00
Jacek Caban c0400560b5 wininet: Moved querying INTERNET_OPTION_REQUEST_FLAGS implementation to HTTPREQ_QueryOption. 2012-05-23 19:12:11 +02:00
Francois Gouget fac36c55e9 Assorted typo, spelling, wording and case fixes. 2012-05-15 16:26:43 +02:00
Piotr Caban 0b42100615 wininet: Store connect timeout in all layers. 2012-05-14 17:46:31 +02:00
Jacek Caban 07e5b87feb wininet: Fixed typo in tests and accompanying implementation. 2012-05-14 17:42:13 +02:00
Jacek Caban 2aa3d697a3 wininet: Set status code OK for responses without headers. 2012-05-03 20:44:14 +02:00
Jacek Caban 0d76489353 wininet: Added special case for HTTP_QUERY_STATUS_CODE in HttpQueryInfo. 2012-05-03 20:44:13 +02:00
Jacek Caban 797a17bb2d wininet: Use stored status code in HTTP_HttpEndRequestW. 2012-05-03 20:44:13 +02:00
Jacek Caban 4cf3f78542 wininet: Use stored status code in HTTP_HttpSendRequestW. 2012-05-03 20:44:12 +02:00
Jacek Caban 5240e40b69 wininet: Store status code in http_request_t and use it in set_content_length. 2012-05-03 20:44:12 +02:00
Jacek Caban 905ede6c6d wininet: Use hostname stored in server_t in NETCON_secure_connect. 2012-04-30 19:32:58 +02:00
Jacek Caban 4863257e30 wininet: Added default fallback for setting handle options and use it for INTERNET_OPTION_CALLBACK. 2012-03-08 17:59:02 +01:00
Jacek Caban dfa9f4bc26 wininet: Insert custom headers only once in HTTP_HttpSendRequestW. 2012-01-24 20:43:14 +01:00
Jacek Caban ac26517ac9 wininet: Correctly detect https connections and custom port numbers in HTTP_HandleRedirect. 2012-01-24 20:43:13 +01:00
Hans Leidekker 6522393265 wininet: Add support for setting and retrieving the send/receive timeouts. 2012-01-16 12:16:41 +01:00
Hans Leidekker 848cd8a2f5 wininet: Add support for setting and retrieving the connect timeout. 2012-01-16 12:16:37 +01:00
Hans Leidekker 72273a0786 wininet: Implement the connect timeout. 2012-01-16 12:16:30 +01:00
Pierre Schweitzer 85e2b4d7df wininet: Fix handle leak. 2012-01-03 12:37:36 +01:00
Jacek Caban 892d3cd46b wininet: Properly handle closed connection in HTTP_HttpEndRequestW. 2011-12-08 18:04:30 +01:00
Andy Clayton da11075000 wininet: Avoid calling HTTP_ReceiveRequestData before reading headers. 2011-11-23 18:08:48 +01:00
Francois Gouget 17929b925e wininet: Give a name to the critical sections, make them static and delete them when unloading the dll. 2011-11-16 17:02:22 +01:00
Juan Lang 044f645477 wininet: Implement ShowX509EncodedCertificate. 2011-11-01 10:36:27 +01:00
André Hentschel adea3c5dda wininet: Add a stub for ShowX509EncodedCertificate. 2011-10-31 17:52:02 +01:00
Juan Lang ad3e22d5ee wininet: Fix off by one error parsing RFC 850 dates. 2011-10-25 16:57:25 +02:00
Juan Lang aeca2f98fa wininet: Accept RFC 850 dates in HTTP headers. 2011-10-24 11:15:59 +02:00
Hans Leidekker 85e9e21929 wininet: Ignore the accept types array in HttpOpenRequestA if there are invalid pointers. 2011-09-27 16:24:26 +02:00
André Hentschel d8f036e4dc wininet: Don't return a relative path when building the proxy url request. 2011-08-24 11:58:13 +02:00
André Hentschel 0fda135f3f wininet: Use the constants from the wininet header. 2011-08-24 11:58:13 +02:00
Jacek Caban 0281b7d30b wininet: Fixed realm allocation in cache_basic_authorization. 2011-07-28 18:37:40 +02:00
Jacek Caban cfdc539972 wininet: Set content_length when we reach end of data in netconn_read. 2011-06-10 15:28:37 +02:00
Jacek Caban 8e37ed551a wininet: Don't pass handle to INTERNET_REQUEST_COMPLETE unless the request is opened via InternetPoenUrl. 2011-06-10 15:28:32 +02:00
Jacek Caban c0293df46a wininet: Moved INTERNET_STATUS_REQUEST_COMPLETE notifications sending to separated function. 2011-06-10 15:28:26 +02:00
Hans Leidekker 9acd1ef15f wininet: Consistently use the allocation macros. 2011-06-01 15:16:53 +02:00
Hans Leidekker 14d4d1957d wininet: Don't change the verb if the server response is HTTP_STATUS_REDIRECT_KEEP_VERB. 2011-06-01 15:16:49 +02:00
Jacek Caban 193da884ad wininet: Correctly handle closed socket in HTTP_ReceiveRequestData. 2011-05-23 16:25:42 +02:00
Jacek Caban 2e2ed52cfb wininet: Use set_cookie directly in HTTP_ProcessCookies. 2011-05-19 19:37:26 +02:00
Jacek Caban dce9181c91 wininet: Use get_cookie directly in HTTP_InsertCookies. 2011-05-19 19:37:26 +02:00
Juan Lang d797e5fc7e wininet: Handle invalid HTTP time of "0". 2011-05-13 17:05:28 +02:00
Jacek Caban a890e3a144 wininet: Fixed handling of 204 No Content response. 2011-05-13 17:05:27 +02:00
Jacek Caban 086eb61c84 wininet: Don't depend on is_end_of_read_data in HTTPREQ_Read. 2011-05-13 17:05:27 +02:00
Jacek Caban 8a1df203ae wininet: Added support for persistent HTTP connections. 2011-05-10 18:57:23 +02:00
Karsten Elfenbein 5b173cb405 wininet: Follow 307 temporary redirect. 2011-05-09 11:44:29 +02:00
Jacek Caban 4c1c5fe64c wininet: Moved connected check out of NETCON_set_timeout. 2011-05-04 17:26:51 +02:00
Jacek Caban 59f2e837eb wininet: Allocate buffer for host name in HTTP_HttpOpenRequestW only if needed. 2011-05-02 12:48:05 +02:00
Jacek Caban aa612ec39b wininet: Get rid of useless read_ret in netconn_read. 2011-05-02 12:48:00 +02:00
Jacek Caban 55b2722816 wininet: Use wrappers for HeapReAlloc calls. 2011-04-22 12:59:17 +02:00
Jacek Caban 354a74e004 wininet: Use wrappers for HeapAlloc calls. 2011-04-21 16:53:42 +02:00
Juan Lang 0b8bfd9736 wininet: Honor security flags specified when opening a connection. 2011-04-07 17:48:28 +02:00
Jacek Caban 9e30a2f5ee wininet: Check NETCON_connected in netconn_end_of_data. 2011-04-06 21:17:41 +02:00
Michael Stefaniuc 9bf247d44e wininet: Move "inline" right after the storage specifier. 2011-04-05 16:23:02 +02:00
Jacek Caban ccd11eb7d6 wininet: Abstract different transfer and content encoding reading to layered structures. 2011-04-04 11:52:56 +02:00
André Hentschel 1a39e29c3b wininet: Port numbers are unsigned. 2011-03-28 17:26:14 +02:00
Jacek Caban 685daf2006 wininet: Ensure that we have data to report before sending INTERNET_STATUS_REQUEST_COMPLETE in HTTP_HttpEndRequestW. 2011-03-17 10:43:40 +01:00
Jacek Caban 2bb3f4fa75 wininet: Decompress gzip data in refill_buffer to ensure that we have the data to report. 2011-03-17 10:43:31 +01:00
Jacek Caban ec96604881 wininet: Release gzip_buffer when opening new connection. 2011-03-15 17:14:07 +01:00
Francois Gouget 4bacb3f24e wininet: Avoid a conflict with the sun macro when compiling on Solaris. 2011-03-14 12:15:35 +01:00
Juan Lang 011b26b1c6 wininet: Store headers in url cache entries. 2011-03-09 12:26:22 +01:00
Juan Lang b9673bcc4d wininet: Fully initialize time variable (valgrind). 2011-03-08 12:53:12 +01:00
Juan Lang b2ed9c5967 wininet: Fix a comment. 2011-03-07 15:01:10 +01:00