Changelog of @hackage/HTTP 4000.3.1
- If the URI contains "user:pass@" part, use it for Basic Authorization
- Add a test harness.
- Don't leak a socket when getHostAddr throws an exception.
- Send cookies in request format, not response format.
- Moved BrowserAction to be a StateT IO, with instances for Applicative, MonadIO, MonadState.
- Add method to control size of connection pool.
- Consider both host and port when reusing connections.
- Handle response code 304 "not modified" properly.
- Fix digest authentication by fixing md5 output string rep.
- Make the default user agent string follow the package version.
- Document lack of HTTPS support and fail when clients try to use it instead of silently falling back to HTTP.
- Add helper to set the request type and body.
Version 4000.1.2: release 2011-08-11
- Turn off buffering for the debug log.
- Update installation instructions.
- Bump base dependency to support GHC 7.2.
Version 4000.1.1: release 2010-11-28
- Be tolerant of LF (instead of CRLF which is the spec) in responses.
Version 4000.1.0: release 2010-11-09
- Retroactively fixed CHANGES to refer to 4000.x.x instead of 4004.x.x.
- Fix problem with close looping on certain URLs due to trying
to munch the rest of the stream even on EOF. Modified from
a fix by Daniel Wagner.
- This involves a new class member for HStream and is thus an API change, but one that will only affect clients that define their own payload type to replace String/ByteString.
- Applied patch by Antoine Latter to fix problem with 301 and 307 redirects.
Version 4000.0.10: release 2010-10-29
- Bump base dependency to support GHC 7.0.
- Stop using 'fail' from the Either monad and instead build Left values explicitly; the behaviour of fail is changing in GHC 7.0 and this avoids being sensitive to the change.
Version 4000.0.9: release 2009-12-20
- Export headerMap from Network.HTTP.Headers (suggested by David Leuschner.)
- Fix Network.TCP.{isTCPConnectedTo,isConnectedTo} to be useful.
- Always delay closing non-persistent connections until we reach EOF. Delaying it until then is vital when reading the response out as a lazy ByteString; all of the I/O may not have happened by the time we were returning the HTTP response. Bug manifested itself occasionally with larger responses. Courtesy of Valery Vorotyntsev; both untiring bug hunt and fix.
- drop unused type argument from Network.Browser.BrowserEvent; needlessly general. (patch provided by Daniel Wagner.)
Version 4000.0.8: release 2009-08-05
-
Incorporated proxy setting lookup and parsing contribution by Eric Kow; provided in Network.HTTP.Proxy
-
Factor out HTTP Cookies and Auth handling into separate modules Network.HTTP.Cookie, Network.HTTP.Auth
-
new Network.Browser functionality for hooking up the proxy detection code in Network.HTTP.Proxy:
setCheckForProxy :: Bool -> BrowserAction t () getCheckForProxy :: BrowserAction t Bool
If you do 'setCheckForProxy True' within a browser session, the proxy-checking code will be called upon. Use 'getCheckForProxy' to get the current setting for this flag.
-
Network.Browser: if HTTP Basic Auth is allowed and server doesn't 401-challenge with an WWW-Authenticate: header, simply assume / realm and proceed. Preferable than failing, even if server is the wrong.
Version 4000.0.7: release 2009-05-22
-
Minor release.
-
Added Network.TCP.openSocketStream :: (BufferType t) => String {-host-} -> Socket -> IO (HandleStream t)
for interfacing to pre-existing @Socket@s. Contributed and suggested by http://trac.haskell.org/http/ticket/7.
Version 4000.0.6: release 2009-04-21; changes from 4000.0.5
- Network.Browser: use HTTP.HandleStream.sendHTTP_notify, not HTTP.sendHTTP_notify when issuing requests. The latter runs the risk of undoing request normalization.
- Network.HTTP.Base.normalizeRequest: when normalizing proxy-bound requests, insert a Host: header if none present. Set it to the destination server authority, not the proxy.
- Network.Browser: don't fail on seeing invalid cookie values, but report them as errors and continue.
Version 4000.0.5: release 2009-03-30; changes from 4000.0.4
-
Get serious about comments and Haddock documentation.
-
Cleaned up normalization of requests, fixing bugs and bringing together previous disparate attempts at handling this.
-
RequestMethod now supports custom verbs; use the (Custom String) constructor
-
Beef up Network.HTTP.Base's support for normalizing requests and URIs:
- added splitRequestURI which divides a URI into two; the Authority portion (as a String) and the input URI sans the authority portion. Useful when wanting to split up a request's URI into its Host: and abs_path pieces.
- added normalizeRequest :: Bool -> Request ty -> Request ty, which fixes up a requests URI path and Host: info depending on whether it is destined for a proxy or not (controlled by the Bool.)
- moved defaultRequest, defaultRequest_, libUA from Network.Browser to Network.HTTP.Base
- added mkRequest :: RequestMethod -> URI -> Bool -> Request ty for constructing normalized&sane Request bases on top of which you can add custom headers, body payload etc.