Commit Graph

180 Commits

Author SHA1 Message Date
Robert Shearman f6252cf43e Remove duplicated code by modifying HTTP_HttpSendRequest so that it
can be used by both HttpSendRequest and HttpSendRequestEx.
Also allow HttpSendRequestEx to be used asynchronously.
2005-11-30 12:31:22 +01:00
Robert Shearman dc5f1cbd5d Remove call to StrCatW by passing in NULL for lpszExtraInformation in
the call to InternetCrackUrl, which concatenates the params onto the
path.
Some other minor cleanups.
2005-11-30 12:01:50 +01:00
Robert Shearman 4350357634 HttpSendRequestExA/W doesn't touch lpBuffersIn->Next, so simplify the
code a bit.
Modify test case to demonstrate this.
2005-11-29 11:42:23 +01:00
Robert Shearman 8a8ce9c4c7 More lpszServerName -> lpszHostName fixes. 2005-11-29 11:35:19 +01:00
Robert Shearman efac01b525 Fix redirects from secure to non-secure and vice versa. 2005-11-29 11:25:31 +01:00
Robert Shearman de2666fd5f Change all SendAsyncCallback calls into the synchronous
INTERNET_SendCallback where INTERNET_FLAG_ASYNC is already handled
properly.
2005-11-29 10:44:05 +01:00
Aric Stewart 1fc760d4a7 Allow HttpEndRequest to process 302 and 301 redirects. Append Host
port if non standard on the redirect host header and make sure to
append the extra information (parameters) and such to the location if
present.  Additionally check to see if we are redirecting to https and
if so set the appropriate port.
2005-11-28 17:31:02 +01:00
Robert Shearman 0e7c41e979 Add support for using secure (SSL/TLS) connections through a proxy
server.
2005-11-28 11:55:16 +01:00
Robert Shearman 13d371da54 Move the initiation of the SSL connection into a separate function. 2005-11-28 11:54:31 +01:00
Robert Shearman 3592110af7 Add a host port field that preserves the requested port of the
destination URL.
2005-11-28 11:53:05 +01:00
Robert Shearman cc44f3a5c7 Fix "http://" prefix detection on the proxy URL. 2005-11-28 11:31:11 +01:00
Robert Shearman 0adec2b3dc Replace some useless checks in HTTP_AddProxyInfo with asserts. 2005-11-28 11:28:06 +01:00
Robert Shearman 225a9facd4 Simplify and fix Set-Cookie handling. 2005-11-28 11:24:41 +01:00
Robert Shearman 22edb3e99e Simplify HTTP_InsertProxyAuthorization. 2005-11-28 11:17:06 +01:00
Robert Shearman 29a436fd87 Add parsing of the Content-ID and Proxy-Connection headers.
Sort the table of header to option number mappings correctly.
Change a FIXME to a WARN because there are "X-..." headers that we
aren't supposed to parse.
2005-11-28 11:00:05 +01:00
Robert Shearman 7bb3463166 Add a new field "lpszHostName" to the session to track the host name
of the HTTP server, as opposed to the server that we will connect to
that could be a proxy server. Fixes the "Host:" header that we send to
servers.
2005-11-28 10:40:42 +01:00
Aric Stewart ed0eba24f9 HttpEndRequest does not actually send an extra NULL byte at the end of
the request. Help from Rob Shearman on this one.
2005-11-22 16:18:48 +00:00
Aric Stewart 9e68c651d6 Fix some logic to allow HTTP_ADDREQ_FLAG_ADD to replace existing
headers. Also adding a test for some header adding flags.
2005-11-22 14:53:30 +00:00
Robert Shearman b27457c91c Fix an incorrect entry in the HTTP header field table causing broken
Location field parsing.
2005-11-22 11:58:50 +00:00
Aric Stewart be918f48b6 Implement HttpSendRequestEx and HttpEndRequest. Restructure, breaking
some things out of HTTP_SendRequestW to avoid duplicate code.
2005-11-21 15:17:55 +00:00
Robert Shearman e6157dde9d We shouldn't pass the struct hostent returned from gethostbyname as
it's not thread-safe and isn't needed anyway.
2005-11-15 18:16:55 +00:00
Robert Shearman 79dc136a37 INTERNET_STATUS_HANDLE_CREATED notifications just send the handle, not
an INTERNET_ASYNC_RESULT structure.
The source handle in HTTP_Connect should be the parent's handle.
2005-11-15 12:01:59 +00:00
Francois Gouget 0edbaf7e80 Remove spaces before '\n' in traces. 2005-11-10 12:14:56 +00:00
Alexandre Julliard dd281290e8 Authors: Marcus Meissner <marcus@jet.franken.de>, Walter Weiss <wjweiss@hotmail.com>
Added handling of more HTTP standard headers and binary search lists.
2005-11-01 18:06:54 +00:00
Jacek Caban 02708c6227 Make functions static. 2005-10-26 10:07:58 +00:00
Mike McCormack 403e58f5f4 Set the http port before figuring out whether we're using a proxy. 2005-10-19 19:07:08 +00:00
Aric Stewart 44cbdf2138 Use debugstr_a to prevent a buffer overflow when debugging. 2005-10-19 18:28:35 +00:00
Alexandre Julliard 7c1925a0f3 Remove the 'L' suffix on a number of constants to avoid comparison
errors on 64-bit platforms.
2005-09-13 15:00:32 +00:00
9c1d0cfc09 Wrong flags were being tested for INTERNET_FLAG_NO_AUTO_REDIRECT. 2005-09-07 11:26:34 +00:00
James Hawkins 92ba28851a Avoid heap corruption by not accessing old HeapReAlloc'ed pointer. 2005-08-24 09:44:59 +00:00
Maarten Lankhorst e325f7ed82 Changed setting default port number from HTTP_Connect to
HttpOpenRequestW.
2005-06-21 20:02:34 +00:00
Mike McCormack 9b95bb526d Fix some warnings. 2005-06-13 19:05:42 +00:00
Peter Berg Larsen e732fc023d Janitorial: Get rid of strncpy/strncpyW. 2005-03-28 14:17:51 +00:00
Francois Gouget 93416cdaf7 Assorted spelling fixes. 2005-03-23 13:15:18 +00:00
Robert Shearman 7707a765b7 - Fully delete custom headers on connection opening.
- Free unneeded memory on clearing of standard headers.
- Fix index sanity test in delete function.
2005-03-10 11:14:24 +00:00
David McCullough 10ff5e1e81 HTTP_HttpSendRequestW was getting invoked with a null verb, default to
the GET method.
2005-02-02 09:56:35 +00:00
Hans Leidekker 6a367dbf8d - Stub implementations for FtpGetFileSize, FtpCommand{A,W},
HttpSendRequestExW, InternetGetLastResponseInfoW,
  InternetConfirmZoneCrossing{A,W}, InternetDial{A,W},
  InternetGoOnline{A,W}, InternetHangUp, CreateMD5SSOHash,
  InternetClearAllPerSiteCookieDecisions,
  InternetEnumPerSiteCookieDecision{A,W}, InternetGetCookieEx{A,W},
  InternetGetPerSiteCookieDecision{A,W},
  InternetSetPerSiteCookieDecision{A,W}, InternetSetCookieEx{A,W},
  ResumeSuspendedDownload, RetrieveUrlCacheEntryFileW,
  UnlockUrlCacheEntryFileW, {Create,Delete}UrlCacheEntryW,
  CommitUrlCacheEntryW, RetrieveUrlCacheEntryStreamW,
  FindCloseUrlCache, FindFirstUrlCacheEntryEx{A,W},
  FindFirstUrlCacheGroup, FindNextUrlCacheEntry{,Ex}{A,W},
  FindNextUrlCacheGroup, SetUrlCacheEntryGroup{A,W},
  {Get,Set}UrlCacheGroupAttribute{A,W}, SetUrlCacheConfigInfo{A,W}.
- Spec file stubs for new undocumented functions
  ForceNexusLookup{,ExW}, Ftp{Get,Put}FileEx, HttpCheckDavCompliance,
  InternetAlgIdToString{A,W}, InternetFortezzaCommand,
  InternetGetCertByURLA, InternetQueryFortezzaStatus,
  InternetSecurityProtocolToString{A,W}, InternetSetDialState{A,W},
  InternetShowSecurityInfoByURL{A,W}, IsUrlCacheEntryExpired{A,W},
  Privacy{Get,Set}ZonePreferenceW, RegisterUrlCacheNotification,
  UrlZonesDetach.
- Use memcpy instead of strncpy in InternetGetLastResponseInfoA.
- Add and improve some traces.
- Fix my own coding style in InternetTimeToSystemTimeW.
- Fix a couple of signedness warnings.
2005-02-01 18:50:53 +00:00
Francois Gouget da8b3dd7f2 Assorted spelling fixes. 2005-01-26 21:09:04 +00:00
Maxime Bellengé e220907c71 Replace '\' with '/' in the URL in HTTP_HttpSendRequestW. 2005-01-25 16:43:17 +00:00
Diego Pettenò 869a66a8fd Get rid of DPRINTF. 2005-01-07 17:09:39 +00:00
Michael Stefaniuc 15a308a9d7 Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.
2005-01-03 14:56:42 +00:00
Michael Stefaniuc 5ad7d858e0 Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.
2004-12-23 17:06:43 +00:00
Michael Stefaniuc 7cb43c9dbe Do not check for non NULL pointer before HeepFree'ing it. It's
redundant.
2004-12-21 14:42:35 +00:00
Mike McCormack c72d956b90 Make sure to insert the proxy authentication header if necessary. 2004-12-06 11:40:57 +00:00
Robert Shearman b72a682751 Use dynamically allocated heap allocated buffers in
HTTP_InterpretHTTPHeader to avoid buffer overflow on large headers.
2004-09-23 22:53:50 +00:00
Robert Shearman 890977a18d Always replace whatever is already in the HTTP "Host" header. 2004-09-20 21:43:47 +00:00
Robert Shearman ed517f3a8b InternetSetStatusCallback can be used on any handle and callbacks are
inherited by derived handles.
2004-09-20 19:10:31 +00:00
Robert Shearman 0e74f851e8 Don't let applications add Connection header to request. 2004-09-14 19:38:59 +00:00
Robert Shearman 37f2cc8274 Store HTTP host header in the same way as most other headers. 2004-09-13 19:33:17 +00:00
Robert Shearman 898baf674e - Remove unused variable hIC.
- Remove check for HTTP signature in server reply.
- Fix stupid error with freeing the wrong buffer.
2004-09-13 19:17:47 +00:00
Uwe Bonnes 66af8b5f60 Strip dangling \r\n from HTTP_HttpSendRequest. 2004-09-10 21:11:22 +00:00
Uwe Bonnes 5f289e766f Check for more standard headers. 2004-09-06 20:27:04 +00:00
Alexandre Julliard 754e7aa788 Added configure check for socklen_t. 2004-09-03 18:30:28 +00:00
Mike McCormack 08c6c698dd Fix the processing of the lpszHeaders field in HttpSendRequest. 2004-08-10 23:41:35 +00:00
Mike McCormack 13b6ce6da8 Fix warnings generated with -Wsign-compare. 2004-08-09 18:54:23 +00:00
Alexandre Julliard d7357a4956 Fixed a couple of off-by-one errors. 2004-07-22 20:36:36 +00:00
Robert Shearman 4385d305e1 HttpQueryInfo returns buffer length including null terminator on
insufficient buffer length and buffer length excluding null terminator
on success:
- Fix HTTP_HttpQueryInfoW for these semantics.
- Fix HttpQueryInfoA to correctly copy the null terminator in the call
  to WideCharToMultiByte.
2004-07-21 21:17:03 +00:00
Mike McCormack f1d7b14bf8 Fix HTTP POST requests. 2004-07-21 19:36:34 +00:00
Robert Shearman 907ac44aa7 Fix string length return from HttpQueryInfoA. 2004-07-20 01:21:08 +00:00
Mike McCormack 3a1391b8dd Use pointers internally and refcount all objects. 2004-07-19 21:49:39 +00:00
Robert Shearman d6315926e6 Honour INTERNET_FLAG_NO_COOKIES. 2004-07-19 21:18:33 +00:00
Robert Shearman dee8751ca8 Fix HttpQueryInfo(HTTP_QUERY_RAW_HEADERS*) so that it returns the
actual headers received, not just reconstituting them from processed
data.
2004-07-19 20:09:20 +00:00
Francois Gouget 817c520909 Assorted spelling fixes. 2004-07-16 19:15:40 +00:00
Alexandre Julliard 48243e32b9 Authors: Mike McCormack <mike@codeweavers.com>, Robert Shearman <rob@codeweavers.com>
- Change the way that the response headers are reconstructed to reduce
  the chance of memory being incorrectly allocated.
- Return the correct error when a header is not found.
- remove all the response headers before receiving new ones so that we
  don't merge headers from two responses.
- Add extra standard fields.
- Split the status line into http version, status code and status text
  and store those in the response data, without using use a fake
  field.
2004-07-15 18:57:32 +00:00
Robert Shearman 4cd38b4829 Accept headers without \r\n ending in HttpAddRequestHeaders. 2004-07-13 23:34:28 +00:00
Mike McCormack a496906336 Build http requests in a more consistent way.
Fix the size of the request buffer.
Don't try converting the optional information from W to A.
2004-07-04 00:24:47 +00:00
Dimitrie O. Paun f3b681a2ad Fix the function names in some of the comments. 2004-06-28 20:28:38 +00:00
Mike McCormack b288f71e29 Pass pointers around internally instead of handles. 2004-06-14 17:57:26 +00:00
Mike McCormack a9b405cf9a Fix proxy support, remove typecasts. 2004-06-01 20:19:56 +00:00
Kevin Koltzau 917df92356 Prevent memory leak and superfluous status notifications. 2004-05-13 05:17:25 +00:00
Francois Gouget 8fc374d8b4 Make Unicode strings 'static const'. 2004-04-20 02:14:00 +00:00
Francois Gouget 6a6c85c6d8 Make Unicode const strings static so they are not copied to the stack
each time we enter the function.
2004-04-19 20:12:14 +00:00
Alexandre Julliard 286fe0af18 Fixed a warning. 2004-04-13 00:19:58 +00:00
Mike McCormack 3462299c55 Convert unicode strings to const. 2004-04-12 23:13:53 +00:00
Alexandre Julliard a2bf4d009b Fixed length handling in HttpQueryInfoW. 2004-03-31 20:09:54 +00:00
Mike McCormack 1baf39f95a Fix the HttpQueryInfoA function buffer size. 2004-03-30 20:37:49 +00:00
Mike McCormack a4e902cbe1 Convert the wininet HTTP functions to Unicode. 2004-03-30 04:36:09 +00:00
Mike McCormack 09d2d47721 Convert WININETAPPINFOA structure to unicode. 2004-03-25 05:29:47 +00:00
Marcus Meissner 9d61aee357 Allocate the correct nr of bytes for lpszCookies in HTTP_HttpOpenRequestA.
Allocate the correct nr of bytes for request stringlen without options.
2004-03-22 21:31:44 +00:00
Marcus Meissner 8624ef4ab3 Allocate correct number of pointers for szAcceptTypes, since we need
it NULL terminated.
HeapReAlloc will modify the pointer, so store it there.
2004-03-22 20:40:46 +00:00
Uwe Bonnes 25efbc9dbc HTTP_HttpSendRequestA: Remove \r and \n at the end of
lpwhr->lpszPath.
2004-03-16 01:06:30 +00:00
Francois Gouget ad5ff7ceeb Assorted spelling and case fixes. 2004-02-09 22:07:42 +00:00
Lionel Ulmer 1d5e6b6725 Better TRACEing in some functions. 2004-02-09 22:01:49 +00:00
Lionel Ulmer e0e314780a Implemented proper asynchronous InternetOpenUrl handling. 2004-02-09 21:45:38 +00:00
Lionel Ulmer a29b4c7cde Report real handles to the application, not Wine internal ones. 2004-02-09 20:55:58 +00:00
Mike McCormack 7cc70c0a8f Implement proper HINTERNET handles. 2004-02-07 01:03:41 +00:00
Uwe Bonnes 599c4522a8 HTTP_DealWithProxy: Only add http:// to proxy string when needed. 2003-12-15 19:47:31 +00:00
Jeremy Shaw 3cd1cfeaf9 Add a '\r\n' to lpszHeaders if it is not already terminated by
'\r\n'.
2003-12-11 04:25:41 +00:00
Mike McCormack b8921a24ab Use unions instead of defines in async work requests. 2003-09-25 20:25:22 +00:00
Alexandre Julliard e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Mike McCormack 43629c9b5b Use WideByteToMultiChar not strlenW.
Use HeapAlloc, not malloc.
2003-08-15 03:47:30 +00:00
David Hammerton 6226f3f26a Added support for http-POST (well, any kind of http request that sends
data in the lpOptional field).
2003-08-05 18:31:02 +00:00
Mike McCormack a1c16d28fa Implement support for proxies with usernames and passwords. 2003-07-22 03:17:52 +00:00
Alexandre Julliard ea6863c182 Fixed a couple of buffer overflows. 2003-07-09 22:15:33 +00:00
David Hammerton 852c7ae404 - implemented support for https protocol
- fixes to the http protocol
2003-06-20 23:26:56 +00:00
Uwe Bonnes 908ef2b290 HTTP_HttpOpenRequestA: Calculate size from the right argument. 2003-05-16 20:12:03 +00:00
Dominik Strasser 94c02fef1a Partially implement proxy support. 2003-04-14 21:32:36 +00:00
Uwe Bonnes 1cd00dae50 InternetOpenUrlA (http/s case): Use client for HttpOpenRequestA, don't
insert HOST: twice.
HttpAddRequestHeadersA: allow lpszHeader == NULL.
2003-02-25 03:57:59 +00:00
Alberto Massari bc8bd72297 - When sending a request using HttpOpenRequest/HttpSendRequest, send the
User-Agent header; fixed the Accept and the Referer header handling to
   really work.
 - Fixed bug in the HTTP_ProcessHeader: when a second value was supposed to be
   added to an existing one, the buffer was reduced to be 1 char long instead
   of being expanded, due to the precedence rules of the operator '?'.
 - Added support for opening URLs that redirect to a different place.
2002-12-06 23:20:31 +00:00
Alberto Massari b09eef23b3 Added stubs for IsHostInProxyBypassList and GetUrlCacheEntryInfoExA. 2002-11-13 04:08:26 +00:00