1# Changelog for http-client 2 3## 0.7.1 4 5* Remove `AI_ADDRCONFIG` [#400](https://github.com/snoyberg/http-client/issues/400) 6 7## 0.7.0 8 9* Remove Eq instances for Cookie, CookieJar, Response, Ord instance for Cookie [#435](https://github.com/snoyberg/http-client/pull/435) 10 11## 0.6.4.1 12 13* Win32 2.8 support [#430](https://github.com/snoyberg/http-client/pull/430) 14 15## 0.6.4 16 17* Avoid throwing an exception when a malformed HTTP header is received, 18 to be as robust as commonly used HTTP clients. 19 See [#398](https://github.com/snoyberg/http-client/issues/398) 20 21## 0.6.3 22 23* Detect response body termination before reading an extra null chunk 24 when possible. This allows connections to be reused in some corner 25 cases. See 26 [#395](https://github.com/snoyberg/http-client/issues/395) 27 28## 0.6.2 29 30* Add `shouldStripHeaderOnRedirect` option to `Request` [#300](https://github.com/snoyberg/http-client/issues/300) 31 32## 0.6.1.1 33 34* Ensure that `Int` parsing doesn't overflow [#383](https://github.com/snoyberg/http-client/issues/383) 35 36## 0.6.1 37 38* Add `setUriEither` to `Network.HTTP.Client.Internal` 39 40## 0.6.0 41 42* Generalize `renderParts` over arbitrary applicative functors. One particular 43 use case that is enabled by this change is that now `renderParts` can be used 44 in pure code by using it in combination with `runIdentity`. 45 46## 0.5.14 47 48* Omit port for `getUri` when protocol is `http` and port is `80`, or when 49 protocol is `https` and port is `443` 50* Sending requests with invalid headers now throws InvalidRequestHeader exception 51 52## 0.5.13.1 53 54* Add a workaround for a cabal bug [haskell-infra/hackage-trustees#165](https://github.com/haskell-infra/hackage-trustees/issues/165) 55 56## 0.5.13 57 58* Adds `setRequestCheckStatus` and `throwErrorStatusCodes` functions. 59 See [#304](https://github.com/snoyberg/http-client/issues/304) 60* Add `withConnection` function. 61 See [#352](https://github.com/snoyberg/http-client/pull/352). 62 63## 0.5.12.1 64 65* Make the chunked transfer-encoding detection case insensitive 66 [#303](https://github.com/snoyberg/http-client/pull/303) 67* Remove some unneeded language extensions 68* Mark older versions of GHC as unsupported 69 70## 0.5.12 71 72* Added `requestFromURI` and `requestFromURI_` functions. 73* Fixed non-TLS connections going though proxy [#337](https://github.com/snoyberg/http-client/issues/337) 74 75## 0.5.11 76 77* Replaced `base64-bytestring` dependency with `memory`. 78 79## 0.5.10 80 81* New function to partial escape query strings 82 83## 0.5.9 84 85* Add `Semigroup` instances for GHC 8.4 [#320](https://github.com/snoyberg/http-client/pull/320) 86 87## 0.5.8 88 89* Switch to the new STM-based manager 90 [#254](https://github.com/snoyberg/http-client/pull/254) 91* Redact sensitive headers [#318](https://github.com/snoyberg/http-client/pull/318) 92 93## 0.5.7.1 94 95* Code cleanup/delete dead code 96* Compat with Win32 2.6 [#309](https://github.com/snoyberg/http-client/issues/309) 97 98## 0.5.7.0 99 100* Support for Windows system proxy settings 101 [#274](https://github.com/snoyberg/http-client/pull/274) 102 103## 0.5.6.1 104 105* Revert socks5 and socks5h support from 106 [#262](https://github.com/snoyberg/http-client/pull/262); the support was 107 untested and did not work as intended. 108 109## 0.5.6 110 111* Added socks5 and socks5h support [#262](https://github.com/snoyberg/http-client/pull/262) 112 113## 0.5.5 114 115* http-client should allow to log requests and responses [#248](https://github.com/snoyberg/http-client/issues/248) 116 117## 0.5.4 118 119* Derive ‘Eq’ for ‘ResponseTimeout’ [#239](https://github.com/snoyberg/http-client/pull/239) 120 121## 0.5.3.4 122 123* Doc improvements 124 125## 0.5.3.3 126 127* Add missing colon in Host header [#235](https://github.com/snoyberg/http-client/pull/235) 128 129## 0.5.3.2 130 131* Minor doc updates 132 133## 0.5.3.1 134 135* The closeConnection method for tls connections should not be called multiple 136 times [#225](https://github.com/snoyberg/http-client/issues/225) 137 138## 0.5.3 139 140* Expose `makeConnection` and `socketConnection` as a stable API [#223](https://github.com/snoyberg/http-client/issues/223) 141 142## 0.5.2 143 144* Enable rawConnectionModifySocketSize to expose openSocketConnectionSize [#218](https://github.com/snoyberg/http-client/pull/218) 145 146## 0.5.1 147 148* Enable managerModifyRequest to modify redirectCount [#208](https://github.com/snoyberg/http-client/pull/208) 149 150## 0.5.0.1 151 152* Doc fix 153 154## 0.5.0 155 156* Remove `instance Default Request` 157* Modify `instance IsString Request` to use `parseRequest` instead of `parseUrlThrow` 158* Clean up the `HttpException` constructors 159* Rename `checkStatus` to `checkResponse` and modify type 160* Fix the ugly magic constant workaround for responseTimeout 161* Remove `getConnectionWrapper` 162* Add the `HttpExceptionRequest` wrapper so that all exceptions related to a 163 request are thrown with that request's information 164 165## 0.4.31 166 167* Added length validation for RequestBodyStream [#205](https://github.com/snoyberg/http-client/pull/205) 168 169## 0.4.30 170 171* Initial implementation of [#193](https://github.com/snoyberg/http-client/issues/193) 172 * Deprecate `parseUrl` 173 * Add `parseUrlThrow`, `parseRequest`, and `parseRequest_` 174 175## 0.4.29 176 177* Changed the order of connecting a socket and tweaking a socket, such that the socket tweaking callback now happen before connecting. 178* add setRequestIgnoreStatus [#201](https://github.com/snoyberg/http-client/pull/201) 179* Added missing Host: HTTP header for https CONNECT [#192](https://github.com/snoyberg/http-client/pull/192) 180* Fix: Redirects will be followed in httpRaw' when reusing a dead connection [#195](https://github.com/snoyberg/http-client/issues/195) 181 182## 0.4.28 183 184* Add support for including request method in URL 185* `requestManagerOverride` 186* `RequestBodyIO` 187 188## 0.4.27.1 189 190* Incorrect idle connection count in HTTP manager [#185](https://github.com/snoyberg/http-client/issues/185) 191 192## 0.4.27 193 194* Enable managerModifyRequest to modify checkStatus [#179](https://github.com/snoyberg/http-client/pull/179) 195 196## 0.4.26.2 197 198* Fix compilation for GHC 7.4 199 200## 0.4.26.1 201 202* Fix compilation for GHC < 7.10 203 204## 0.4.26 205 206* Make sure we never read from or write to closed socket [#170](https://github.com/snoyberg/http-client/pull/170) 207 208## 0.4.25 209 210* Don't error out when response body flushing fails [#169](https://github.com/snoyberg/http-client/issues/169) 211 212## 0.4.24 213 214* Use a new `TlsExceptionHostPort` exception to indicate the host and port of the server we were trying to connect to when a TLS exception occurred. See [commercialhaskell/stack#1010](https://github.com/commercialhaskell/stack/issues/1010) 215 216## 0.4.23 217 218* Case insensitive cookie domains [#158](https://github.com/snoyberg/http-client/issues/158) 219 220## 0.4.22 221 222* ProxyConnectException now returns Right HttpException. [#155](https://github.com/snoyberg/http-client/pull/155) 223 224## 0.4.21 225 226* Support `no_proxy` environment variable. [#140](https://github.com/snoyberg/http-client/issues/140) [#145](https://github.com/snoyberg/http-client/pull/145) 227 228## 0.4.20 229 230* Expose `brReadSome` 231 232## 0.4.19 233 234* Move HasHttpManager from http-conduit to http-client [#147](https://github.com/snoyberg/http-client/pull/147) 235* Chunked request bodies use less TCP packets [#149](https://github.com/snoyberg/http-client/issues/149) 236 237## 0.4.18 238 239* Deprecate closeManager [#136](https://github.com/snoyberg/http-client/issues/136) [#137](https://github.com/snoyberg/http-client/issues/137) 240 241## 0.4.17 242 243* Case insensitive proxy environment variables [#135](https://github.com/snoyberg/http-client/issues/135) 244 245## 0.4.16 246 247* Proxy auth for HTTPS [#132](https://github.com/snoyberg/http-client/issues/132) 248 249## 0.4.15 250 251* Support proxy authentication in environment variables [#129](https://github.com/snoyberg/http-client/issues/129) 252 253## 0.4.14 254 255* Ignore empty `http_proxy` [#128](https://github.com/snoyberg/http-client/pull/128) 256 257## 0.4.13 258 259* Support for auth via url [#124](https://github.com/snoyberg/http-client/pull/124) 260 261## 0.4.12 262 263* Added `IsString RequestBody` instance [#126](https://github.com/snoyberg/http-client/pull/126) 264 265## 0.4.11.3 266 267* Fix getUri to insert "?" to uriQuery when necessary. [#123](https://github.com/snoyberg/http-client/pull/123) 268 269## 0.4.11.2 270 271* Removed publicsuffixlist dependency, see [Github discussion](https://github.com/litherum/publicsuffixlist/pull/7) 272 273## 0.4.11.1 274 275* Disable custom timeout code [#116](https://github.com/snoyberg/http-client/issues/116) 276 277## 0.4.11 278 279* Ignore the 'Content-Length' header if the body contains chunked data [#115](https://github.com/snoyberg/http-client/pull/115) 280 281## 0.4.10 282 283* Expect: 100-continue [#114](https://github.com/snoyberg/http-client/pull/114) 284 285## 0.4.9 286 287* Add RequestBody smart constructors `streamFile` and `streamFileObserved`, the latter with accompanying type `StreamFileStatus`. 288 289## 0.4.8.1 290 291* Automatically call withSocketsDo everywhere [#107](https://github.com/snoyberg/http-client/issues/107) 292 293## 0.4.8 294 295* Add the `ResponseLengthAndChunkingBothUsed` exception constructor [#108](https://github.com/snoyberg/http-client/issues/108) 296 297## 0.4.7.2 298 299* Improved `timeout` implementation for high contention cases [#98](https://github.com/snoyberg/http-client/issues/98) 300 301## 0.4.7.1 302 303* Fix for shared connections in proxy servers [#103](https://github.com/snoyberg/http-client/issues/103) 304 305## 0.4.7 306 307* [Support http\_proxy and https\_proxy environment variables](https://github.com/snoyberg/http-client/issues/94) 308 309## 0.4.6.1 310 311Separate tests not requiring internet access. [#93](https://github.com/snoyberg/http-client/pull/93) 312 313## 0.4.6 314 315Add `onRequestBodyException` to `Request` to allow for recovering from 316exceptions when sending the request. Most useful for servers which terminate 317the connection after sending a response body without flushing the request body. 318 319## 0.4.5 320 321Add `openSocketConnectionSize` and increase default chunk size to 8192. 322 323## 0.4.4 324 325Add `managerModifyRequest` field to `ManagerSettings`. 326 327## 0.4.3 328 329Add `requestVersion` field to `Request`. 330 331## 0.4.2 332 333The reaper thread for a manager will go to sleep completely when there are no connection to manage. See: https://github.com/snoyberg/http-client/issues/70 334 335## 0.4.1 336 337* Provide the `responseOpenHistory`/`withResponseHistory` API. See: https://github.com/snoyberg/http-client/pull/79 338 339## 0.4.0 340 341* Hide the `Part` constructor, and allow for additional headers. See: https://github.com/snoyberg/http-client/issues/76 342