diff --git a/NEWS.md b/NEWS.md index b1238a23..ea1ced71 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,18 @@ # NEWS +1.12.0 -- 2018-04-03 +-------------------- + +- fix socks5 badarg error when an IP is given +- upgrade IDNA to 5.1.1 +- upgrade certifi to 2.3.1 +- fix handling of requests with content-length or transfer-encoding given (#475) +- improvments: send SNI in socks5 SSL +- fix: Allow trailing spaces at the end of chunk sizes (#489) +- fix: set once the metrics engine +- fix leak in the socket pool (#462) +- fix doc + 1.11.0 - 2018-01-23 ------------------- diff --git a/README.md b/README.md index 0fa1b2d5..18121bd9 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Copyright (c) 2012-2018 Benoît Chesneau. -__Version:__ 1.11.0 +__Version:__ 1.12.0 # hackney @@ -533,6 +533,7 @@ $ kill `cat httpbin.pid` hackney_http_connect hackney_local_tcp hackney_manager +hackney_metrics hackney_multipart hackney_pool hackney_pool_handler diff --git a/doc/README.md b/doc/README.md index 9138e491..0135191b 100644 --- a/doc/README.md +++ b/doc/README.md @@ -4,7 +4,7 @@ Copyright (c) 2012-2018 Benoît Chesneau. -__Version:__ 1.11.0 +__Version:__ 1.12.0 # hackney @@ -533,6 +533,7 @@ $ kill `cat httpbin.pid` hackney_http_connect hackney_local_tcp hackney_manager +hackney_metrics hackney_multipart hackney_pool hackney_pool_handler diff --git a/doc/edoc-info b/doc/edoc-info index 38563849..3eff2cea 100644 --- a/doc/edoc-info +++ b/doc/edoc-info @@ -3,6 +3,7 @@ {modules,[hackney,hackney_app,hackney_bstr,hackney_connect,hackney_cookie, hackney_date,hackney_headers,hackney_headers_new,hackney_http, hackney_http_connect,hackney_local_tcp,hackney_manager, - hackney_multipart,hackney_pool,hackney_pool_handler,hackney_request, - hackney_response,hackney_socks5,hackney_ssl,hackney_stream, - hackney_sup,hackney_tcp,hackney_trace,hackney_url,hackney_util]}. + hackney_metrics,hackney_multipart,hackney_pool,hackney_pool_handler, + hackney_request,hackney_response,hackney_socks5,hackney_ssl, + hackney_stream,hackney_sup,hackney_tcp,hackney_trace,hackney_url, + hackney_util]}. diff --git a/doc/hackney_headers_new.md b/doc/hackney_headers_new.md index ad733b14..4a334a64 100644 --- a/doc/hackney_headers_new.md +++ b/doc/hackney_headers_new.md @@ -55,7 +55,7 @@ value() = binary() | {binary() | [{binary(), binary()} | binary()]}
append/3append a new value to the list of value for the the header field -if the key has not been recorded the list will be created witht eh value as the first item.
delete/2delete a field from headers.
fold/3
from_list/1create headers from a list.
get_value/2get the first value of an headers or return undefined.
get_value/3get the first value of an headers or return the default.
is_key/2is the header field exists or no.
lookup/2
merge/2merge 2 headers objects.
new/0initialize an empty headers objecy.
new/1
parse_content_type/1
parse_media_type/2Parse a media type.
size/1return the number of headers fields.
store/2store a list of headers.
store/3replace the content of the header field with the value or the list of values.
store_new/3only store a vakue if the key exist.
to_binary/1transform headers to a binary that can be used to construct a request.
to_iolist/1conver headers to an iolist.
to_list/1convert headers to a list.
+if the key has not been recorded the list will be created with the value as the first item.delete/2delete a field from headers.fold/3from_list/1create headers from a list.get_value/2get the first value of an headers or return undefined.get_value/3get the first value of an headers or return the default.is_key/2is the header field exists or no.lookup/2merge/2merge 2 headers objects.new/0initialize an empty headers objecy.new/1parse_content_type/1parse_media_type/2Parse a media type.size/1return the number of headers fields.store/2store a list of headers.store/3replace the content of the header field with the value or the list of values.store_new/3only store a vakue if the key exist.to_binary/1transform headers to a binary that can be used to construct a request.to_iolist/1conver headers to an iolist.to_list/1convert headers to a list. @@ -72,7 +72,7 @@ append(Key::key(), Value::value()<
append a new value to the list of value for the the header field -if the key has not been recorded the list will be created witht eh value as the first item. +if the key has not been recorded the list will be created with the value as the first item.
diff --git a/doc/hackney_pool.md b/doc/hackney_pool.md index b82379b9..df40657e 100644 --- a/doc/hackney_pool.md +++ b/doc/hackney_pool.md @@ -15,7 +15,7 @@ __Behaviours:__ [`gen_server`](gen_server.md).
checkin/2release a socket in the pool.
checkout/4fetch a socket from the pool.
child_spec/2return a child spec suitable for embeding your pool in the -supervisor.
code_change/3
count/1get the number of connections in the pool.
count/2get the number of connections in the pool for {Host0, Port, Transport}
find_pool/1
handle_call/3
handle_cast/2
handle_info/2
init/1
max_connections/1get max pool size.
notify/2
set_max_connections/2change the pool size.
set_timeout/2change the connection timeout.
start/0
start_link/2
start_pool/2start a pool.
stop_pool/1stop a pool.
terminate/2
timeout/1get timeout.
+supervisor.code_change/3count/1get the number of connections in the pool.count/2get the number of connections in the pool for {Host0, Port, Transport}find_pool/1get_stats/1handle_call/3handle_cast/2handle_info/2init/1max_connections/1get max pool size.notify/2set_max_connections/2change the pool size.set_timeout/2change the connection timeout.start/0start_link/2start_pool/2start a pool.stop_pool/1stop a pool.terminate/2timeout/1get timeout. @@ -75,6 +75,12 @@ get the number of connections in the pool for `{Host0, Port, Transport}` `find_pool(Name) -> any()` + + +### get_stats/1 ### + +`get_stats(Pool) -> any()` + ### handle_call/3 ### diff --git a/doc/hackney_util.md b/doc/hackney_util.md index 0bba12a2..e44127b0 100644 --- a/doc/hackney_util.md +++ b/doc/hackney_util.md @@ -9,7 +9,7 @@ ## Function Index ## -
filter_options/3filter a proplists and only keep allowed keys.
is_ipv6/1
maybe_apply_defaults/2
merge_opts/2
mod_metrics/0
privdir/0
require/1Start the given applications if they were not already started.
set_option_default/3set the default options in a proplists if not defined.
to_atom/1
+
filter_options/3filter a proplists and only keep allowed keys.
is_ipv6/1
maybe_apply_defaults/2
merge_opts/2
mod_metrics/0
privdir/0
require/1Start the given applications if they were not already started.
set_option_default/3set the default options in a proplists if not defined.
to_atom/1
to_int/1
@@ -87,3 +87,9 @@ set the default options in a proplists if not defined `to_atom(V) -> any()` + + +### to_int/1 ### + +`to_int(S) -> any()` +