-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New features and bug fixes #3
base: master
Are you sure you want to change the base?
Conversation
Hello Filipe, Really nice modifications. Oscar, do you have any comments on the mods? |
Also enhanced the lhttpc_lib:parse_url/1 to parse credentials as specified in RFC1738 - before if user credentials were specified, this function would consider that what follows the first : is the port and not a password.
If an URL targets an IPv6 host, lhttpc will now pass the inet6 option to the socket automatically. This also fixes 2 bugs: 1) in lhttpc_lib:parse_url/1 when the host component is an IPv6 address literal - the parser thinks that what follows the first : is a port number; 2) for IPv6 address literals, the Host header must surround those literals in square brackets (RFC2732)
This change adds support for HTTP proxies that allow the HTTP CONNECT method tunneling [1, 2]. Tested against Squid 3.1.15. [1] http://muffin.doit.org/docs/rfc/tunneling_ssl.html [2] http://tools.ietf.org/html/rfc2817
This allows the connection pool (lhttpc_manager) to block clients, when they request a socket, when the current number of open sockets/connection reaches a certain (configurable) threshold.
This test verifies that the lhttpc_manager pool closes sockets if they are not used after a configurable period of time.
This change allows different clients to use different connection pools (lhttpc_manager instances). This is useful when we have several different applications or process groups which are independent and shouldn't share the same pool. It also reduces the overhead of messaging a single centralized pool.
This reports the duration of each test and which specific tests fail.
Hi, I saw that you sent this to ESL. That's probably for the better, since I've been really busy with other things. I was intending to have a look during the holidays :) I did have some initial thoughts about the connection limit when we developed lhttpc. My idea was to have that as a separate module, kind of like a seaphore, so that it wouldn't make lhttpc_manager more complex. I haven't looked too much at your changes but as far as I can see you've implemented the changes for connection limits in lhttpc_manager. /Oscar |
That's an interesting idea Oscar. |
+1 for merging |
@astro All those changes were merged into Erlang Solutions' lhttpc repository: regards |
That is great. I hope they will tag a release some day. Thanks. |
Hi Oscar,
The following commits add the following features:
Automatic support for HTTP basic auth;
Support IPv6;
Support HTTP proxies;
Support for a limit in the pool (lhttpc_manager);
Allow clients to use different pools (lhttpc_manager instances)
and 2) also fix and enhance lhttpc_lib:parse_url/1.
Best regards,
Filipe Manana