Mistagrooves
7a8e53d855
Updated method of checking for empty
vor 13 Jahren
Mistagrooves
2c709e3cad
Accounted for empty lists as well
vor 13 Jahren
Mistagrooves
8dfdac84c1
A body generating function returning 0 data looks to the end server as the end of the entity which it shouldn't
vor 13 Jahren
Mistagrooves
a21fe24148
Fixed an issue where ibrowse_lb could shutdown before all connections are closed
vor 13 Jahren
Chandrashekhar Mullaparthi
0005cac696
Fixed issue with stopping ibrowse
vor 13 Jahren
Chandrashekhar Mullaparthi
26d34d542f
Behave consistently on errors
vor 13 Jahren
Chandrashekhar Mullaparthi
b9675455cc
Changing version number to reflect bug fix
vor 13 Jahren
Chandrashekhar Mullaparthi
0f4f99b0be
Fixed dialyzer warning which showed a bug!
vor 13 Jahren
Chandrashekhar Mullaparthi
3aabf5dfdf
Added get_metrics
vor 13 Jahren
Chandrashekhar Mullaparthi
d3d43e8529
Changes to load balancing and various other tweaks
vor 13 Jahren
David Mike Simon
baa7c7189e
Using actual project version in the otp app file
vor 13 Jahren
Tim Watson
51e220983f
Add support for appending additional configuration at runtime
vor 13 Jahren
Alexander Songe
92f58983ff
Making ibrowse safe for logging democracy (let the person packaging an app with ibrowse choose their logger, sasl or lager or something custom)
vor 13 Jahren
Hunter Kelly
47482f0564
Tell rebar to use last tag in git as the vsn().
vor 14 Jahren
Chandrashekhar Mullaparthi
e05aa73f1a
Fixes for issues reported. Work in progress
vor 14 Jahren
Filipe David Manana
ee06a43ddb
Use queue:peek/1 - more efficient than hd(queue:to_list(Queue))
vor 14 Jahren
Alexey Romanov
0e42656980
save_response_to_file option extended to support appending to an existing file
vor 14 Jahren
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.
vor 14 Jahren
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
vor 14 Jahren
Filipe David Manana
2ed96d5233
Add inet6 option to socket if host is IPv6 enabled
vor 14 Jahren
Chandrashekhar Mullaparthi
6ed0f3efee
Fixed bug with the save_response_to_file option.
vor 14 Jahren
Chandrashekhar Mullaparthi
9c4f4149ed
Upped version to 2.1.3
vor 14 Jahren
Chandrashekhar Mullaparthi
74c337792a
Various changes. See README for details
vor 14 Jahren
Andrew Tunnell-Jones
c141175ef1
Remove unused port driver code
vor 14 Jahren
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/*
vor 14 Jahren
Chandrashekhar Mullaparthi
7c8317a948
Make test URL an argument
vor 14 Jahren
Filipe David Manana
53753a26ed
Fix misspelled value 'no_reply' => 'noreply'
vor 14 Jahren
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.
vor 14 Jahren
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.
vor 14 Jahren
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.
vor 14 Jahren
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.
vor 14 Jahren
Filipe David Manana
ab5ac287b8
Fix worker process hanging when it received partial headers and the caller controls the socket
vor 14 Jahren
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.
vor 14 Jahren
Chandrashekhar Mullaparthi
5b13e5b245
Pipelining wasn't working when used with the {stream_to, {Pid, once}} option
vor 14 Jahren
Chandrashekhar Mullaparthi
3dabcaa174
Release 2.1.1. Various fixes. See README
vor 14 Jahren
jlo
5344ea2a1a
- fix crash when requesting to close a stream connection.
vor 14 Jahren
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".
vor 14 Jahren
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
vor 14 Jahren
Chandrashekhar Mullaparthi
1a08838a3b
Release 2.1.0
vor 14 Jahren
Chandrashekhar Mullaparthi
7958fc2f6b
Removed spurious io:format
vor 14 Jahren
Chandrashekhar Mullaparthi
d756a2b0b6
Various changes. See README for details
vor 14 Jahren
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"...>>}
vor 15 Jahren
Chandrashekhar Mullaparthi
05e1003547
Removed use of concat_binary
vor 15 Jahren
Chandrashekhar Mullaparthi
d5580a5de2
Fixed bug in https requests without a proxy in between
vor 15 Jahren
Chandrashekhar Mullaparthi
a114ed3bc4
Keep dialyzer happy. Thanks Kostis
vor 15 Jahren
Chandrashekhar Mullaparthi
8a4653d4d4
Added support for tunnelling through a proxy. Other minor changes as indicated in the README
vor 15 Jahren
Chandrashekhar Mullaparthi
dcee4cbe5d
Added option headers_as_is
vor 15 Jahren
Chandrashekhar Mullaparthi
e9d35b9962
Patch from Kostis Sagonas to cleanup some code and suppress dialyzer warnings
vor 15 Jahren
Chandrashekhar Mullaparthi
75bab56e5d
Fixed bug in processing of save_response_to_file option
vor 15 Jahren
Chandrashekhar Mullaparthi
2e6bff7e8b
Allow socket options to be set by caller during the connect phase as well
vor 15 Jahren