Chandrashekhar Mullaparthi
8c46b108bb
Filipe added support for IPv6
14 年前
Chandrashekhar Mullaparthi
b2d8d960b0
Merge branch 'dev' of https://github.com/hibari/ibrowse into hibari-dev
14 年前
Filipe David Manana
f5640f564b
More reliable IPv6 detection
inet:gethostbyname/1 might fail for IPv6 literals, therefore check first
if host is an IPv6 address literal.
14 年前
Filipe David Manana
3367f003e3
ibrowse_lib:parse_url/1 now accepts IPv6 literals as hostnames
As specified in the following RFC: http://www.ietf.org/rfc/rfc2732.txt
14 年前
Joseph Wayne Norton
553ec676fb
Add .eunit/
14 年前
Joseph Wayne Norton
ad59aa12d0
Ignore ebin/
14 年前
Filipe David Manana
2ed96d5233
Add inet6 option to socket if host is IPv6 enabled
14 年前
Chandrashekhar Mullaparthi
6ed0f3efee
Fixed bug with the save_response_to_file option.
14 年前
Chandrashekhar Mullaparthi
9c4f4149ed
Upped version to 2.1.3
14 年前
Chandrashekhar Mullaparthi
0757ff975d
Rebarize ibrowse. Slightly tweakeed Andrew Tunnell-Jones' pull request
14 年前
Chandrashekhar Mullaparthi
74c337792a
Various changes. See README for details
14 年前
Andrew Tunnell-Jones
c141175ef1
Remove unused port driver code
14 年前
Andrew Tunnell-Jones
8c12491c68
Use rebar as build tool
* Add rebar
* Move build flags from src/Makefile to rebar.config
* Remove src/Makefile
* Put version in src/ibrowse.app.src
* Remove vsn.mk
* Remove ebin/ibrowse.app
* Change Makefile to read version from src/ibrowse.app.src
* Change Makefile all target to call ./rebar compile
* Change Makefile clean target to call ./rebar clean
* Update .gitignore to ignore ebin/*
14 年前
Chandrashekhar Mullaparthi
9110bdbc4a
Merge branch 'stream_next_reset_inac_timer' of https://github.com/fdmanana/ibrowse into fdmanana-stream_next_reset_inac_timer
14 年前
Chandrashekhar Mullaparthi
9fc7a08cbe
Merge branch 'allow_custom_nodelay' of https://github.com/fdmanana/ibrowse into fdmanana-allow_custom_nodelay
14 年前
Chandrashekhar Mullaparthi
4d5417515c
Merge branch 'stream_iolists' of https://github.com/fdmanana/ibrowse into fdmanana-stream_iolists
14 年前
Chandrashekhar Mullaparthi
11ddee38d3
Merge branch 'fix_stream_to_once_get_header' of https://github.com/fdmanana/ibrowse into fdmanana-fix_stream_to_once_get_header
14 年前
Chandrashekhar Mullaparthi
7d0168ad76
Merge branch 'clear_inac_timeout_before_send' of https://github.com/fdmanana/ibrowse into fdmanana-clear_inac_timeout_before_send
14 年前
Chandrashekhar Mullaparthi
7c8317a948
Make test URL an argument
14 年前
Filipe David Manana
53753a26ed
Fix misspelled value 'no_reply' => 'noreply'
14 年前
Filipe David Manana
20b7f662f5
Don't trigger new inactivity timer when socket data is received and caller controls the socket
Like in synchronous programming, in makes sense to start an inactivity timer only when the caller
does a "recv" call and cancel the timer as soon as data is received from the socket.
14 年前
Filipe David Manana
c98fcc8108
Reset inactivity timeout when stream_next is invoked
This avoids plenty of connection inactivity timeouts. From a logical point of view,
the inactivity timeout should be reset not only only data is received from the socket
but also when the client asks for more data.
14 年前
Filipe David Manana
901eb69d47
Allow custom nodelay socket option
Currently ibrowse defined the nodelay socket option to true, not allowing the caller
to supply its own value, which would also make the sndbuf option useless if the caller
supplied it as well.
When sending large bodies, setting nodelay to false with a custom sndbuf can improve
network throughput very significantly. For e.g., custom tests reduced an upload from
16 minutes to about 12 minutes.
14 年前
Filipe David Manana
74d6f70b44
Don't convert chunks into binaries
Allow chunks to be IO lists. These lists will get flattened by the ERTS in
a much more efficient way than converting them to raw binaries in Erlang code.
14 年前
Filipe David Manana
ab5ac287b8
Fix worker process hanging when it received partial headers and the caller controls the socket
14 年前
Filipe David Manana
80e050a6ce
Fix invalid req_timedout errors
When reusing the same connection (ibrowse worker) for multiple requests, the current
inactivity timeout must be cleared before sending a request body. When the sending of the
body takes more than inactivity_timeout milliseconds, the client will get
a req_timedout error. Currenty inactivity_timer is cleared only after sending the whole body.
14 年前
Chandrashekhar Mullaparthi
5b13e5b245
Pipelining wasn't working when used with the {stream_to, {Pid, once}} option
14 年前
Chandrashekhar Mullaparthi
3dabcaa174
Release 2.1.1. Various fixes. See README
14 年前
Chandrashekhar Mullaparthi
12f3fc664f
Merge branch 'content_length_empty_body' of https://github.com/fdmanana/ibrowse into fdmanana-content_length_empty_body
14 年前
jlo
5344ea2a1a
- fix crash when requesting to close a stream connection.
14 年前
jlo
d33070b86b
- fix bug when using an ssl socket with socket_options.
do_setopts/3 was being called with the 3rd arg as a boolean instead of the "State".
14 年前
Filipe David Manana
96118961d0
Two changes:
1) Set Content-Length to 0 for empty PUT and POST requests (necessary for some proxies);
2) Use iolist_size/1 instead of size/1 or length/1 because the body can be an iolist
14 年前
Chandrashekhar Mullaparthi
d5d3f1f4cd
Corrected names of contributors in README
14 年前
Chandrashekhar Mullaparthi
f00fe6e464
Corrected version number in README
14 年前
Chandrashekhar Mullaparthi
1a08838a3b
Release 2.1.0
14 年前
Chandrashekhar Mullaparthi
7958fc2f6b
Removed spurious io:format
14 年前
Chandrashekhar Mullaparthi
d756a2b0b6
Various changes. See README for details
14 年前
Chandrashekhar Mullaparthi
c6a698c099
Merged changes from Filipe David Manana to use the base64 OTP module for Base64 encoding/decoding
14 年前
Filipe David Manana
1bdc1185c6
Use Erlang's OTP base64 module (available since R12B02) and avoid duplicated base64
encoding/decoding code in ibrowse_lib.erl and ibrowse_http_client.erl.
OTP's base64 module is also more efficient (C implementation):
1> Data = crypto:rand_bytes(4096).
<<205,174,13,169,97,159,110,161,71,43,226,153,42,101,243,
83,11,96,23,161,253,251,129,240,163,216,58,175,190,...>>
2>
2> timer:tc(ibrowse_lib, encode_base64, [Data]).
{2920,
<<"za4NqWGfbqFHK+KZKmXzUwtgF6H9+4Hwo9g6r77h2EF1/Xk1oKOIOmnAkgtv41LPXg37fp2dlr45C8qCA9/8zrcc9F5zr2JT0eVPTrh5aahl"...>>}
3> timer:tc(ibrowse_lib, encode_base64, [Data]).
{1221,
<<"za4NqWGfbqFHK+KZKmXzUwtgF6H9+4Hwo9g6r77h2EF1/Xk1oKOIOmnAkgtv41LPXg37fp2dlr45C8qCA9/8zrcc9F5zr2JT0eVPTrh5aahl"...>>}
4> timer:tc(ibrowse_lib, encode_base64, [Data]).
{1436,
<<"za4NqWGfbqFHK+KZKmXzUwtgF6H9+4Hwo9g6r77h2EF1/Xk1oKOIOmnAkgtv41LPXg37fp2dlr45C8qCA9/8zrcc9F5zr2JT0eVPTrh5aahl"...>>}
5> timer:tc(ibrowse_lib, encode_base64, [Data]).
{1195,
<<"za4NqWGfbqFHK+KZKmXzUwtgF6H9+4Hwo9g6r77h2EF1/Xk1oKOIOmnAkgtv41LPXg37fp2dlr45C8qCA9/8zrcc9F5zr2JT0eVPTrh5aahl"...>>}
6>
6> timer:tc(base64, encode, [Data]).
{1846,
<<"za4NqWGfbqFHK+KZKmXzUwtgF6H9+4Hwo9g6r77h2EF1/Xk1oKOIOmnAkgtv41LPXg37fp2dlr45C8qCA9/8zrcc9F5zr2JT0eVPTrh5aahl"...>>}
7> timer:tc(base64, encode, [Data]).
{743,
<<"za4NqWGfbqFHK+KZKmXzUwtgF6H9+4Hwo9g6r77h2EF1/Xk1oKOIOmnAkgtv41LPXg37fp2dlr45C8qCA9/8zrcc9F5zr2JT0eVPTrh5aahl"...>>}
8> timer:tc(base64, encode, [Data]).
{737,
<<"za4NqWGfbqFHK+KZKmXzUwtgF6H9+4Hwo9g6r77h2EF1/Xk1oKOIOmnAkgtv41LPXg37fp2dlr45C8qCA9/8zrcc9F5zr2JT0eVPTrh5aahl"...>>}
9> timer:tc(base64, encode, [Data]).
{656,
<<"za4NqWGfbqFHK+KZKmXzUwtgF6H9+4Hwo9g6r77h2EF1/Xk1oKOIOmnAkgtv41LPXg37fp2dlr45C8qCA9/8zrcc9F5zr2JT0eVPTrh5aahl"...>>}
15 年前
Chandrashekhar Mullaparthi
43e8da9fe9
Removed use of concat_binary
15 年前
Chandrashekhar Mullaparthi
05e1003547
Removed use of concat_binary
15 年前
Chandrashekhar Mullaparthi
d5580a5de2
Fixed bug in https requests without a proxy in between
15 年前
Chandrashekhar Mullaparthi
07153bca98
Clarified license
15 年前
Chandrashekhar Mullaparthi
a114ed3bc4
Keep dialyzer happy. Thanks Kostis
15 年前
Chandrashekhar Mullaparthi
29cc655e66
Updated version number
15 年前
Chandrashekhar Mullaparthi
8a4653d4d4
Added support for tunnelling through a proxy. Other minor changes as indicated in the README
15 年前
Chandrashekhar Mullaparthi
dcee4cbe5d
Added option headers_as_is
15 年前
Chandrashekhar Mullaparthi
e9d35b9962
Patch from Kostis Sagonas to cleanup some code and suppress dialyzer warnings
15 年前
Chandrashekhar Mullaparthi
75bab56e5d
Fixed bug in processing of save_response_to_file option
15 年前
Chandrashekhar Mullaparthi
2e6bff7e8b
Allow socket options to be set by caller during the connect phase as well
15 年前