Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
[4.3.2] - 2024-03-11
Changed
- [dep.]
tls_certificate_check
from 1.9.0 to 1.21.0 [Dinis Rosário]
[4.3.1] - 2022-04-19
Added
rebar3_ex_doc
+make ex_doc-dry
[Paulo Oliveira]
Changed
edoc
-based doc. toex_doc
-based doc. [Paulo Oliveira]
[4.3.0] - 2021-09-16
Changed
- TLS certificate validation to prepare for DST Root CA X3 expiration [Guilherme Andrade]
- [dep.]
tls_certificate_check
from 1.7.0 to 1.9.0 [Guilherme Andrade]
[4.2.0] - 2021-07-16
Added
rebar3_hank
[Paulo Oliveira]
Changed
- CI container approach to
setup-beam
with cache [Paulo Oliveira] - CA bundles, to base them on the latest Mozilla Included CA Certificate List [Guilherme Andrade]
Removed
- compatibility with OTP 21
[4.1.2] - 2021-03-15
Changed
- [dep.]
tls_certificate_check
from 1.1.1 to 1.2.0 [Paulo Oliveira]
Fixed
rebar3
+certifi
(now indirectly removed) compilation issues [Paulo Oliveira]
[4.1.1] - 2021-03-04
Removed
- unused dep
parse_trans
[Paulo Oliveira]
[4.1.0] - 2021-03-04
Changed
- CI from 23.1 to 23.2 [Paulo Oliveira]
rebar.config
to a fresher look-and-feel [Paulo Oliveira]
Removed
- all mentions of
@spec
[Paulo Oliveira] test/simple_load.erl
[Paulo Oliveira]
[4.0.0] - 2020-12-10
Added
- all types that are exposed via API functions to their respective module's
export_type
sections [Paulo Oliveira]
Removed
- lhttpc_types.hrl [Paulo Oliveira]
- lhttpc.hrl [Paulo Oliveira]
- defined types that are unused internally (and not exported) [Paulo Oliveira]
[3.3.0] - 2020-05-22
Added
- compatibility with OTP 23
Changed
- Travis constraints: updated version as per our current reality; added
make check
- minimum supported version to 19.3
- README.md: removed outdated info; added test-related info
Fixed
- some broken tests
[3.2.0] - 2020-04-30
Changed
- source of dependencies to Hex, for quicker builds
Removed
- support for OTP 17
- support for OTP 18
- support for rebar2
[3.1.0] - 2020-03-12
Added
- exported types lhttpc:result/0 and lhttpc:headers/0
Changed
- CA bundles, to base them on the latest Mozilla Included CA Certificate List
Fixed
- OTP 21 dialyzer warnings
[3.0.7] - 2019-09-25
Fixed
- unwarranted throwing of exception(s) to consumer during racy pool creation
[3.0.6] - 2019-09-24
Fixed
- warning on rebar3 over ssl_verify_fun's missing .app description
[3.0.5] - 2019-02-01
Fixed
- potential compilation issues when importing lib. as a dependency on OTP 21
[3.0.4] - 2019-01-23
Fixed
- bad specification of returned error reasons on :request/{4,5,6,9}
[3.0.3] - 2019-01-18
Fixed
- dialyzer warnings
[3.0.2] - 2018-09-13
Fixed
- OTP 21 compile-time warnings
[3.0.1] - 2018-08-07
Fixed
- rebar2 support
[3.0.0] - 2018-08-07
Added
- missing boot dependencies
Changed
- application was rebar3ified while still being usable as a rebar2 dependency
- application version is now determined from git
- HTTPS requests are now secure by default
Fixed
- unintelligibility of which test cases failed (main suite)
- low test coverage due to broken test cases that prevented others from running
OLD STYLE CHANGE LOG BELOW
Version ?:
* Add support for connect_options
* Enables the user to pass socket options, for instance ip and port,
that will be used when connecting the socket
* Allows the user to specify SSL options during the connect phase
* Add support for "streaming" of entities
* Add start/0 and stop/0
* Fix for unexpected messages after request has been completed
* When the client process is trapping exits (which some eunit versions seem
to be doing by default) there would be {'EXIT', Pid, normal} messages left
after completing requests which came from the lhttpc_client process.
These are now avoided.
* Add rebar support (thanks to Benoit Chesneau)
* Add support for HTTP basic auth (Filipe Manana)
* Add support for IPv6 (Filipe Manana)
* Several URL parsing fixes (Filipe Manana)
* Add support for proxies via HTTP CONNECT method (Filipe Manana)
* Add connection limit to the connection pool (Filipe Manana)
* Add suport for using multiple connection pools - different requests can now
use different connection pools (Filipe Manana)
Version 1.2.5:
* Fix for decoding chunked HTTP responses with extraneous whitespace
(thanks to Bob Ippolito)
* api.facebook.com includes extra whitespace in its chunked HTTP response
length, e.g. "6 \r\n" instead of "6\r\n".
Version 1.2.4:
* Fix handling of HTTP response code 304 (patch by Ben Slavin)
Version 1.2.3:
* Fix handling of unexpected 100 Continue response (patch by Magnus Henoch)
Version 1.2.2:
* Fix Host header, add port number (reported by Benoit Chesneau)
Version 1.2.1:
* Fix confusion of arguments in request/9 (introduced in 1.2.0)
Version 1.2.0:
* Add support for options
* {connect_timeout, Milliseconds}: Aborts the connect phase after
Milliseconds
* {send_retry, N}: The client will retry sending the request N times
if the connection is closed
* Add support for downloading chunked transfer encoding
* More consistent error handling
* The client can either return {ok, Result} or {error, Reason}. Reason
(which wasn't very well defined before) can now be:
* connection_closed: The server closed the connection on us (N times
in case it happens just after sending the request)
* connect_timeout: If the TCP stack gives up or we hit the
connect_timeout option
* timeout: If the overall request timeout value is hit
* All other errors (socket, protocol etc. will result in a runtime error)
* Better connection handling (issues #2 and #3 on bitbucket.org/etc/lhttpc)
* Now understands what to do with connections to servers < HTTP/1.1
* Now respects "Connection: close" in request headers, which means
clients can choose to not use persistent connections
* RFC Compliance
* Fix reading of chunked encoding since section 3.6 claims that "All
transfer-coding values are case-insensitive"
* Support for responses that doesn't have an entity body (thanks to Steve
Ellis)
* No body for the HEAD and OPTIONS (unless indicated for the latter)
methods
* Don't try to read a body when receiving a 204 status
Version 1.1.2:
* Fix minor error with {active, once} instead of {active, true} in manager
* Remove socket and try to find another if the manager can't set controlling
process due to socket error
* Improve test suite
Version 1.1.1:
* Fix problem with empty lists in dicts when last socket is consumed
* Improve test suite to include cover report
Version 1.1.0:
* Support for configurable connection timeout
Version 1.0.0:
* Initial version
* Persistent connections have hardcoded timeout