Changelog for HTTP-4000.0.9

Version 4004.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 4004.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 4004.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 4004.0.6: release 2009-04-21; changes from 4004.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 4004.0.5: release 2009-03-30; changes from 4004.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.