Jacek Caban
11ca05f6ae
wininet: Added support for decompressing gzip encoded content.
2009-06-01 16:16:01 +02:00
Jacek Caban
26bbf072aa
wininet: Change read_buf type to BYTE.
2009-06-01 16:16:01 +02:00
Jacek Caban
d1d1da35ca
wininet: Always set path in HttpOpenRequest.
2009-06-01 16:16:01 +02:00
Jacek Caban
83170893ae
wininet: Move strings to avoid duplications.
2009-06-01 16:16:01 +02:00
Alexandre Julliard
5c227a9d8a
wininet: Add a critical section to protect the read-ahead buffer.
2009-05-28 23:01:28 +02:00
Marcus Meissner
1d362c90a4
wininet: lpwhr cannot be NULL (Coverity 927).
2009-05-20 13:34:12 +02:00
Alexandre Julliard
3d02c42b39
wininet: Add a read-ahead buffer to allow InternetQueryDataAvailable to return the right values in chunked mode.
2009-05-14 16:45:38 +02:00
Alexandre Julliard
e531ccd6b0
wininet: Centralize detection of chunked mode and add a flag for it in the http request structure.
2009-05-14 16:42:44 +02:00
Hans Leidekker
6bb143af33
wininet: Don't send any data after being redirected.
2009-05-06 16:10:01 +02:00
Alexandre Julliard
9ee1b06056
wininet: Pass the complete redirected URL in INTERNET_STATUS_REDIRECT callbacks.
2009-05-04 20:49:15 +02:00
Hans Leidekker
3fc27f67f3
wininet: Replace any existing content length header in HttpSendRequest.
2009-04-30 12:47:40 +02:00
Paul TBBle Hampson
4d57ee3409
wininet: HTTP_HttpAddRequestHeadersW should ignore 0-length headers.
2009-04-27 13:24:42 +02:00
Hans Leidekker
8ab00329dd
wininet: Replace any existing cookie header.
2009-04-24 15:51:47 +02:00
Hans Leidekker
8077480b0e
wininet: Support asynchronous HttpEndRequest.
2009-04-08 16:10:19 +02:00
Hans Leidekker
3a711fb56b
wininet: Don't start reading when POST data hasn't been completely written.
2009-04-08 16:10:11 +02:00
Hans Leidekker
85eb438ff7
wininet: Send notifications from InternetWriteFile.
2009-04-08 16:10:05 +02:00
Hans Leidekker
0fabf540e7
wininet: Keep track of the number of bytes written.
2009-04-08 16:10:00 +02:00
Hans Leidekker
100ee0ad2a
wininet: Ignore invalid response headers.
2009-03-04 13:06:06 +01:00
Hans Leidekker
96b639dc8a
wininet: Remove MSG_PEEK hack from HTTP_GetResponseHeaders.
...
Fixes Quicken 2009. Aric said he added this hack back in 2002
to work around a bug in the IE6 installer, which installs fine
now without this hack.
2009-03-04 13:06:04 +01:00
Aric Stewart
f936832595
wininet: Make use of improved cookie functions and cookie paths.
2009-02-18 14:08:15 +01:00
Hans Leidekker
8f1a3e4e1f
wininet: Properly drain content for chunked transfers.
2009-02-13 15:33:04 +01:00
Andrew Talbot
f815b68a30
wininet: Declare some functions static.
2009-02-02 12:11:51 +01:00
Hans Leidekker
aac2e8dd19
wininet: Make sure redirected POST requests become GET requests.
2009-01-29 15:59:03 +01:00
Jacek Caban
e13781a315
wininet: Set dwError to 0 in first INTERNET_STATUS_REQUEST_COMPLETE notification.
2009-01-22 15:28:23 +01:00
Hans Leidekker
667e48286e
wininet: Calculate the header size if needed in HttpSendRequestW.
2009-01-16 12:34:35 +01:00
Hans Leidekker
b013ad168b
wininet: Implement InternetReadFileExW.
2009-01-16 12:34:26 +01:00
Hans Leidekker
1c07d94ddc
wininet: Send a content length header for all verbs other than GET.
2009-01-15 12:41:53 +01:00
Jacek Caban
12931062fb
wininet: Make sure that we have data buffered before sending INTERNET_STATUS_REQUEST_COMPLETE notification.
2009-01-13 15:28:39 +01:00
Alexandre Julliard
97da2e57fb
wininet: Use ~0u instead of ~0ul for DWORD values.
2009-01-05 12:40:39 +01:00
Alexandre Julliard
82280618db
wininet: Include ws2tcpip.h before anything else for the Windows build.
2008-12-09 11:33:25 +01:00
Andrew Talbot
bc8d8e5211
wininet: Sign-compare warnings fix.
2008-12-08 22:03:00 +01:00
Hans Leidekker
2ac52b0eee
wininet: Stop leaking username and password.
2008-12-03 09:46:45 +01:00
Hans Leidekker
a57cc6dcf6
wininet: Support setting username and password options on request handles.
2008-12-03 09:46:30 +01:00
Hans Leidekker
d1076aeab4
wininet: Don't increase index in HttpQueryInfo if requested level is HTTP_QUERY_STATUS_CODE.
...
Some apps depend on this quirk because they don't reset the index
before subsequent calls to HttpQueryInfo.
2008-12-02 14:03:54 +01:00
Michael Stefaniuc
e6bd2881d8
wininet: Remove some superfluous casts.
2008-12-01 12:57:03 +01:00
Francois Gouget
523679666d
wininet: Remove WINAPI on static functions where not needed.
2008-11-25 11:50:08 +01:00
Lei Zhang
be2570f7a0
wininet: Handle HTTP 303 redirects.
2008-11-05 10:55:40 +01:00
Lei Zhang
905f628c05
wininet: Remove redundant variables.
2008-11-05 10:55:36 +01:00
Marcus Meissner
2d5ca30994
wininet: Removed redundant NULL check (Coverity).
2008-11-03 11:50:10 +01:00
Hans Leidekker
bd80529709
wininet: Add an exception handler in HttpOpenRequestA to protect against invalid accept type pointers.
2008-10-24 14:25:00 +02:00
Hans Leidekker
d5dca63cb6
wininet: Don't destroy authentication data when closing the connection.
...
Fixes basic authentication in combination with connection close semantics.
Spotted by Vincent Povirk.
2008-10-17 14:12:33 +02:00
Jan-Peter Nilsson
b261836709
wininet: Fix HTTP_ProcessCookies only processing one cookie.
2008-10-08 14:17:08 +02:00
Rob Shearman
0715d9c123
wininet: Fix crash when calling HttpQueryInfoA/W(HTTP_QUERY_RAW_HEADERS) before any response has been received from a server.
2008-10-08 12:17:11 +02:00
Hans Leidekker
128b8a5e0c
wininet: Avoid a crash on certain buffer size queries in HTTP_HttpQueryInfoW.
2008-10-07 12:03:12 +02:00
Rob Shearman
d31ce9ae37
wininet: Compare HRESULT values explicitly against S_OK instead of using an implicit != 0 comparison.
2008-10-01 11:43:30 -05:00
Hans Leidekker
8c20124fc4
wininet: Support setting username and password through options.
2008-09-25 11:51:41 +02:00
Lei Zhang
f7e56d19c4
wininet: Remove redundant CrLf variables.
2008-08-28 11:24:50 +02:00
Lei Zhang
bc9e214f6f
wininet: Work around NULL headers when handling HTTP_QUERY_RAW_HEADERS_CRLF.
2008-08-28 11:24:50 +02:00
Vincent Povirk
17c0c0a54b
wininet: Default to keep-alive when the server is HTTP/1.1, not when it isn't.
2008-08-19 14:56:06 +02:00
Dan Kegel
1e7f89194c
wininet: HTTP_QUERY_RAW_HEADERS_CRLF length shouldn't include nul.
2008-07-31 14:02:04 +02:00
Hans Leidekker
216d4c0834
wininet: Fix cookie buffer overflow.
...
Spotted by Yann Droneaud.
2008-07-21 12:22:05 +02:00
Hans Leidekker
572b0bab88
wininet: Move insertion of cookie header from HttpOpenRequest to HttpSendRequest.
...
Based on a patch by Yann Droneaud.
2008-07-21 12:21:58 +02:00
Hans Leidekker
e3e2622e41
wininet: Fix a memory leak.
2008-07-21 12:21:27 +02:00
Jacek Caban
7426e7e055
wininet: Moved more InternetQueryOption implementation to vtbl.
2008-07-21 12:18:48 +02:00
Jacek Caban
13a95f1648
wininet: Move InternetQueryOption(INTERNET_OPTION_USER_AGENT) to vtbl.
2008-07-21 12:18:41 +02:00
Vincent Povirk
fd5b97bc4d
wininet: Always respect Proxy-Connection: or Connection: if it exists.
2008-07-17 10:51:26 +02:00
Alexander Morozov
4f51b6c1d8
wininet: Add port number to Host HTTP header.
2008-07-07 14:16:07 +02:00
Alexander Morozov
ad2f53db8f
wininet: Add support of INTERNET_FLAG_NO_CACHE_WRITE.
2008-07-07 14:16:07 +02:00
Alexander Morozov
70218092bb
wininet: Remove unneeded variable.
2008-07-04 19:50:58 +02:00
Hans Leidekker
bdf311f91f
wininet: Only reconnect when redirected to an external site.
2008-06-30 15:08:47 +02:00
Hans Leidekker
6233704481
wininet: Resolve hostname once per connection.
2008-06-24 11:45:18 +02:00
Hans Leidekker
34ff555cf9
wininet: Send a 'Pragma: no-cache' header if asked for.
2008-06-24 11:45:10 +02:00
Hans Leidekker
3434935f44
wininet: Clear last error upon successful return from HttpSendRequest.
2008-06-24 11:44:57 +02:00
Rob Shearman
62e0a8ca38
wininet: Fix memory leak in HTTP_DeleteCustomHeader.
...
Free the memory associated with the field and value of the custom
header otherwise it will be leaked. Found by Valgrind.
2008-06-21 11:12:50 +02:00
Colin Finck
bbd550ad5c
wininet: Always pass a variable as lpNumberOfBytesWritten on a WriteFile call if lpOverlapped is set to NULL.
2008-06-19 11:47:03 +02:00
Hans Leidekker
656a035821
wininet: Don't send a "Connection: Close" header.
2008-06-02 14:05:32 +02:00
Hans Leidekker
2f99450c49
wininet: Make resolving hostnames thread-safe.
2008-06-02 13:44:31 +02:00
Lei Zhang
bd58463eda
wininet: Send https scheme to proxy server when appropriate.
2008-05-22 11:44:29 +02:00
Hans Leidekker
694a09284a
wininet: Fix buffer size query for HttpQueryInfo(HTTP_QUERY_RAW_HEADERS_CRLF).
2008-05-19 14:04:10 +02:00
Hans Leidekker
e1b889830d
wininet: INTERNET_STATUS_REQUEST_COMPLETE callback must supply a handle.
2008-05-19 13:35:24 +02:00
Rob Shearman
6021fa09f3
wininet: Fix a typo in is_basic_auth_value.
...
This fixes basic authentication when the server uses a realm string.
2008-05-19 13:35:19 +02:00
Hans Leidekker
1c5bc9a772
wininet: HTTP_BuildProxyRequestUrl returns a pointer.
2008-05-12 14:01:06 +02:00
Hans Leidekker
aec0e93d23
wininet: Don't overwrite content length header in HttpSendRequest.
2008-05-12 14:00:51 +02:00
Hans Leidekker
493b6915ca
wininet: Deal with bogus accept types array passed into HttpOpenRequestA.
2008-05-07 17:49:31 +02:00
Andrew Talbot
07ae2992b8
wininet: Remove unused variables.
2008-05-05 12:52:26 +02:00
Hans Leidekker
e2f690a0ac
wininet: Don't add the user agent header until HttpSendRequest is called.
2008-05-05 12:51:56 +02:00
Dan Hipschman
d3051cba22
wininet: Don't forget the INTERNET_STATUS_REDIRECT callback in HttpEndRequest.
2008-04-24 12:03:34 +02:00
Dan Hipschman
a1ebffb452
wininet: Remove custom content-length/type headers from redirects.
2008-04-23 12:23:39 +02:00
Austin English
6e59cd2c34
Spelling fixes.
2008-04-22 12:20:12 +02:00
Aric Stewart
bade2a31a6
wininet: Correct the case where Content-Length is set as well as Transfer-Encoding == chunked.
2008-04-18 11:45:52 +02:00
Alexandre Julliard
631f469cb5
wininet: Avoid size_t type in trace.
2008-04-04 13:12:21 +02:00
Hans Leidekker
612f3c1414
wininet: Use INTERNET_MAX_URL_LENGTH to size buffers we intend to store a URL in.
2008-04-01 11:27:03 +02:00
Hans Leidekker
8210e1b454
wininet: Parse the redirect URL in HTTP_HandleRedirect in case of a proxy connection.
2008-04-01 11:26:52 +02:00
Hans Leidekker
729631d907
wininet: Remove dead code from HTTP_DealWithProxy and improve its debug trace.
2008-04-01 11:26:42 +02:00
Hans Leidekker
e4c59c263d
wininet: Don't set the host port from the server port.
...
This works for direct connections but in case of proxy connections server
port and host port usually are different.
2008-03-31 13:00:42 +02:00
Hans Leidekker
0ffe9f5207
wininet: Fix redirects through a proxy.
...
HTTP_DealWithProxy replaces the request path with a full URL to make sure
a correct request is built for for the proxy. This will work just once in
case of a redirect because the path will be appended to the redirect url,
resulting in an incorrect url.
2008-03-31 13:00:32 +02:00
Hans Leidekker
454fae8432
wininet: Don't close proxy connections when keep-alive is specified.
2008-03-31 13:00:18 +02:00
Dan Hipschman
0929593b6c
wininet: InternetReadFileExA should check INTERNET_FLAG_ASYNC.
2008-03-28 09:50:42 +01:00
Dan Hipschman
aaecdf79bd
wininet: HttpSendRequestExA is not a stub.
2008-03-28 09:50:38 +01:00
Hans Leidekker
058761fa34
wininet: Support chunked reads in InternetReadFileEx too.
2008-03-26 23:48:13 +01:00
Hans Leidekker
0936601f5b
wininet: Implement chunked reads.
2008-03-26 13:46:12 +01:00
Hans Leidekker
3a57711bb8
wininet: Don't strip Accept-Encoding headers from version 1.1 requests.
2008-03-25 11:33:32 +01:00
Rob Shearman
db5745c001
wininet: If we receive an error from InitializeSecurityContext in HTTP_DoAuthorization then set pAuthInfo->finished so that we don't carry on using the security context.
2008-03-15 10:58:38 +01:00
Rob Shearman
e74514b138
wininet: Assume that if we're connected to an HTTP/1.1 server then connections can be kept alive by default.
...
So don't close the connection in this case in HTTP_FinishedReading.
2008-03-15 10:58:38 +01:00
Rob Shearman
ebaa4d987d
wininet: Only clear authentication header if the connection has authentication information.
2008-03-12 17:55:21 +01:00
Rob Shearman
b8ad4dee86
wininet: Fix proxy authentication by using the data in lpwhr->pProxyAuthInfo in HTTP_InsertAuthorization instead of lpwhr->pAuthInfo when inserting the Proxy-Authentication header.
2008-03-12 17:55:12 +01:00
Jacek Caban
7e63f95326
wininet: Move InternetQueryOption(INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT) to vtbl.
2008-03-12 12:00:00 +01:00
Jacek Caban
ce6a2289c6
wininet: Move InternetQueryOption(INTERNET_OPTION_DATAFILE_NAME).
2008-03-12 11:59:54 +01:00
Jacek Caban
0e010d83a1
wininet: Move InternetQueryOption(INTERNET_OPTION_URL) to vtbl.
2008-03-12 11:59:47 +01:00
Jacek Caban
e2933c20d6
wininet: Move INTERNET_OPTION_HANDLE_TYPE to vtbl.
2008-03-12 11:59:41 +01:00
Rob Shearman
0be05ab6aa
wininet: Retrieve the maximum token length from the SSP and use a buffer of that length in calls to InitializeSecurityContextW.
...
Otherwise, InitializeSecurityContextW could run out of space with our
small, fixed buffer and fail.
2008-03-10 19:12:54 +01:00
Rob Shearman
7631bdf0c1
wininet: Allow HTTP_DoAuthorization to accept a NULL username/domain in the non-Basic case.
...
When using SSPI, pass in a NULL identity in this case so that the SSP
can try to use cached credentials.
2008-03-10 19:12:54 +01:00
Rob Shearman
8c6ac00820
wininet: Don't call DeleteSecurityContext and FreeCredentialsHandle on invalid handles.
2008-03-10 19:12:54 +01:00
Rob Shearman
bdc81d9963
wininet: Make the reference count of WININETHANDLEHEADER thread-safe by using InterlockedIncrement/InterlockedDecrement.
2008-03-10 19:12:54 +01:00
Jacek Caban
d597fd12fc
wininet: Moved InternetReadFileExA to vtbl.
2008-03-03 20:45:31 +01:00
Jacek Caban
ca39a55e88
wininet: Don't use INTERNET_ReadFile in HTTP_DrainContent.
2008-03-03 12:00:32 +01:00
Jacek Caban
3b4ca69e18
wininet: Move InternetReadFile to vtbl.
2008-03-03 12:00:20 +01:00
Jacek Caban
9a5c046129
wininet: Move INTERNET_STATUS_REQUEST_COMPLETE call from INTERNET_ReadFile.
2008-03-03 12:00:06 +01:00
Jacek Caban
3314184597
wininet: Move InternetQueryDataAvailable to vtbl.
2008-02-29 20:07:13 +01:00
Jacek Caban
8c45eecca7
wininet: Moved InternetFindNextFileW implementation to vtbl.
2008-02-28 10:44:42 +01:00
Jacek Caban
0e33eee9a2
wininet: Use vtbl for InternetSetOption(INTERNET_OPTION_[SEND|RECEIVE]_TIMEOUT) implementation.
2008-02-27 14:52:25 +01:00
Jacek Caban
1ffcfbce85
wininet: Use vtbl in InternetWriteFile implementation.
2008-02-27 14:52:24 +01:00
Jacek Caban
7dc9bf677b
wininet: Moved close_connection to vtbl.
2008-02-27 14:52:24 +01:00
Jacek Caban
5a535d6b23
wininet: Moved handle destructor to vtbl.
2008-02-27 14:52:24 +01:00
Maarten Lankhorst
5132fb4469
wininet: Fix retrieving raw headers.
2008-02-27 14:52:24 +01:00
Francois Gouget
abfa73b5c1
wininet: Document HttpAddRequestHeadersW()'s handling of the trailing '\0'. Fix tracing of the corresponding header strings as they may not be '\0' terminated.
2008-02-19 13:39:24 +01:00
Rob Shearman
719cd82f35
wininet: Fix potential buffer overrun in HttpQueryInfoA.
...
If HTTP_QUERY_CUSTOM is specified then the buffer contains a
null-terminated string on input and data of length len on output. The
code wasn't taking into account that the input len could be less than
the length of the string and thus could result in the allocated buffer
being overrun with the call to WideCharToMultiByte.
2008-02-19 13:39:24 +01:00
Hans Leidekker
9717113fcb
wininet: Rename a function to better match what it does.
2008-02-18 13:33:52 +01:00
Hans Leidekker
2617fb6dea
wininet: Handle the "100 Continue" response by ignoring it.
2008-02-18 13:33:33 +01:00
Hans Leidekker
d0033dbaed
wininet: Honour the version override in HttpOpenRequest.
2008-02-18 13:33:10 +01:00
Rob Shearman
f8f9dbbbe7
wininet: Fix an off-by-one error in the boundary checks in HTTP_DecodeBase64.
2008-02-16 13:54:17 +01:00
Jacek Caban
f979134270
wininet: Code clean up.
2008-02-15 10:00:12 +01:00
Jacek Caban
d7a49e8147
wininet: Added beginning support for HTTP cache files.
2008-02-15 10:00:03 +01:00
Andrew Talbot
45481db078
wininet: Remove unneeded casts.
2008-02-05 12:19:37 +01:00
Hans Leidekker
b0912d1151
wininet: Add zero value content length header to POST requests only.
2008-02-04 14:18:51 +01:00
Hans Leidekker
c132dd9360
wininet: Send HTTP/1.1 requests by default.
2008-02-04 14:18:20 +01:00
Hans Leidekker
b069ef4268
wininet: Make sure not to overwrite any caller supplied authorization header.
2008-02-04 14:18:20 +01:00
Rob Shearman
59ab0cf362
wininet: HTTP_Connect should fail if a NULL or empty hostname is passed in.
...
Add tests for these circumstances.
2008-02-04 13:04:34 +01:00
Rob Shearman
5edcf3ab6c
wininet: Pass the server name into InitializeSecurityContextW.
2008-01-25 12:30:08 +01:00
Gerald Pfeifer
3f1a20b8b1
wininet: Fix type of a loop variable in HTTP_BuildHeaderRequestStr().
2008-01-14 15:31:37 +01:00
Austin English
0e4adae973
Spelling fixes.
2008-01-07 13:41:01 +01:00
Hans Leidekker
4d84eb26d0
wininet: Fix handling of host and referrer headers in HttpOpenRequest.
2008-01-07 12:02:12 +01:00
Marcus Meissner
fe475d9e88
wininet: Check return value of InternetCrackUrl when checking referrer host.
2008-01-03 13:30:26 +01:00
Rob Shearman
01826e0c98
wininet: Don't clear the auth data for Basic authentication in HTTP_InsertAuthorizationForHeader.
...
It isn't tracked per connection, unlike NTLM authentication, and so the
server will return a 401 error and try to get us to authenticate again.
However, this doesn't work as the authentication information is assumed
by the code to be valid for the whole connection.
2007-11-27 16:42:26 +01:00
Juan Lang
9adf83e90d
wininet: Don't use HEAP_ZERO_MEMORY on memory that's fully initialized.
2007-11-08 12:18:31 +01:00
Juan Lang
a1ab4a7eff
wininet: Fix another typo.
2007-11-08 12:18:30 +01:00
Juan Lang
b210e3a751
wininet: Fix typo.
2007-11-08 12:18:30 +01:00
Nigel Liang
6f44627b04
wininet: Release object in HttpSendRequestExW before return on error.
2007-11-05 15:05:16 +01:00
Hans Leidekker
64359c2432
wininet: Always send a content length header, even if there is no content.
2007-10-29 13:06:50 +01:00
Juan Lang
d857c04c95
wininet: Don't assume lpBuffersIn is not NULL.
2007-10-23 12:23:52 +02:00
Nigel Liang
7d2ac2039b
wininet: Release object in HttpEndRequestW after use.
2007-10-18 13:21:28 +02:00
Misha Koshelev
728e5fa559
wininet: Track child handles, free all child handles on WININET_FreeHandle as native.
2007-09-21 11:53:04 +02:00
Francois Gouget
d4337f2b5e
wininet: Fix many wininet prototypes: the context is a DWORD_PTR now.
2007-08-30 17:02:49 +02:00
Misha Koshelev
0f117e568f
wininet: Separate connection closing from object destruction.
2007-08-23 13:13:24 +02:00
Misha Koshelev
5320d3e3ea
wininet: Don't send INTERNET_STATUS_HANDLE_CLOSING when closing handle opened with InternetOpen for HTTP connection.
2007-08-22 12:18:59 +02:00
Mikołaj Zalewski
3fa49f0f02
wininet: Make HttpQueryInfo[AW] work for lpBuffer == NULL and len > 0.
2007-08-16 11:52:06 +02:00
Mikołaj Zalewski
ab7d17727c
wininet: Support HTTP_QUERY_RAW_HEADER_CRLF|HTTP_QUERY_FLAG_REQUEST_HEADERS.
2007-08-16 11:51:52 +02:00
Hans Leidekker
bb9413d77a
wininet: Process caller supplied headers after inserting connection and authorization headers, not before.
2007-08-10 12:58:17 +02:00
Aric Stewart
c8dfc02bfb
wininet: Strip Accept-Encoding from http/1.0 requests.
2007-07-27 12:47:51 +02:00
Rob Shearman
cb28969c2a
wininet: Implement NTLM support for proxy authentication.
2007-06-06 12:11:34 +02:00