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