Tags: dhull/lhttpc
Tags
Make close_connection_timeout stats recording more efficient. Version… … 1.17.1. Previously the lhttpc_lb did not keep a socket when it was checked out. This meant that when the client died (due to a timeout, for example) the lhttpc_stats module had to search the stats table based on the client pid instead of using the key. Now that the lhttpc_lb process keeps the sockets that it checks out the lhttpc_stats process can now use the socket instead of the pid when recording timeouts.
Eliminate some socket operations to reduce contention. Version 1.17.0.
* No longer use {active, once} to eagerly discover closed sockets. This means
that if the socket is closed remotely we won't notice until we try to use it,
but lhttpc_client already has retry logic to deal with this situation.
* No longer transfer ownership of socket to client on checkout. Since the
client never sets the socket to active we don't need to worry about
socket-related message delivery and it isn't necessary.
Fix handling of URLs with query with empty path. Version 1.14.3. Previously when passed a URL such as `http://host?query`, lhttpc would use `?query` as the request URI (i.e., `GET ?query`). However RFC 2616 Section 3.2.2 says, "If the abs_path is not present in the URL, it MUST be given as "/" when used as a Request-URI for a resource (section 5.1.2)." My reading is that this means that lhttpc should use `/?query` in the example.
lhttpc_dns: Heuristic changes for when the DNS resolver returns subse… …t of larger pool. Version 1.14.0. In the old heuristic, if the initial DNS lookups causes lhttpc_dns to use a long TTL it would never switch to a short TTL because the the old set of IP addresses would be discarded because of TTL expiration and thus would not notice that the set of IP addresses had changed.
Set the SNI TLS extension for SSL connections. Version 1.13.0. Erlang automatically sets the SNI (server name indication) TLS extension when the Host argument to the ssl:connect call is a hostname, but our DNS cache converts the hostname to an IP address which prevents that from working. We now set the server_name_indication option to the original hostname in the ssl:connect call.
PreviousNext