Tim Watson
51e220983f
Add support for appending additional configuration at runtime
hace 13 años
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)
hace 13 años
Hunter Kelly
47482f0564
Tell rebar to use last tag in git as the vsn().
hace 14 años
Chandrashekhar Mullaparthi
e05aa73f1a
Fixes for issues reported. Work in progress
hace 14 años
Filipe David Manana
ee06a43ddb
Use queue:peek/1 - more efficient than hd(queue:to_list(Queue))
hace 14 años
Alexey Romanov
0e42656980
save_response_to_file option extended to support appending to an existing file
hace 14 años
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.
hace 14 años
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
hace 14 años
Filipe David Manana
2ed96d5233
Add inet6 option to socket if host is IPv6 enabled
hace 14 años
Chandrashekhar Mullaparthi
6ed0f3efee
Fixed bug with the save_response_to_file option.
hace 14 años
Chandrashekhar Mullaparthi
9c4f4149ed
Upped version to 2.1.3
hace 14 años
Chandrashekhar Mullaparthi
74c337792a
Various changes. See README for details
hace 14 años
Andrew Tunnell-Jones
c141175ef1
Remove unused port driver code
hace 14 años
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/*
hace 14 años
Chandrashekhar Mullaparthi
7c8317a948
Make test URL an argument
hace 14 años
Filipe David Manana
53753a26ed
Fix misspelled value 'no_reply' => 'noreply'
hace 14 años
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.
hace 14 años
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.
hace 14 años
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.
hace 14 años
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.
hace 14 años
Filipe David Manana
ab5ac287b8
Fix worker process hanging when it received partial headers and the caller controls the socket
hace 14 años
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.
hace 14 años
Chandrashekhar Mullaparthi
5b13e5b245
Pipelining wasn't working when used with the {stream_to, {Pid, once}} option
hace 14 años
Chandrashekhar Mullaparthi
3dabcaa174
Release 2.1.1. Various fixes. See README
hace 14 años
jlo
5344ea2a1a
- fix crash when requesting to close a stream connection.
hace 14 años
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".
hace 14 años
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
hace 14 años
Chandrashekhar Mullaparthi
1a08838a3b
Release 2.1.0
hace 14 años
Chandrashekhar Mullaparthi
7958fc2f6b
Removed spurious io:format
hace 14 años
Chandrashekhar Mullaparthi
d756a2b0b6
Various changes. See README for details
hace 14 años
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"...>>}
hace 15 años
Chandrashekhar Mullaparthi
05e1003547
Removed use of concat_binary
hace 15 años
Chandrashekhar Mullaparthi
d5580a5de2
Fixed bug in https requests without a proxy in between
hace 15 años
Chandrashekhar Mullaparthi
a114ed3bc4
Keep dialyzer happy. Thanks Kostis
hace 15 años
Chandrashekhar Mullaparthi
8a4653d4d4
Added support for tunnelling through a proxy. Other minor changes as indicated in the README
hace 15 años
Chandrashekhar Mullaparthi
dcee4cbe5d
Added option headers_as_is
hace 15 años
Chandrashekhar Mullaparthi
e9d35b9962
Patch from Kostis Sagonas to cleanup some code and suppress dialyzer warnings
hace 15 años
Chandrashekhar Mullaparthi
75bab56e5d
Fixed bug in processing of save_response_to_file option
hace 15 años
Chandrashekhar Mullaparthi
2e6bff7e8b
Allow socket options to be set by caller during the connect phase as well
hace 15 años
Chandrashekhar Mullaparthi
ce2cc0140e
Added option to allow caller to specify socket options
hace 15 años
Chandrashekhar Mullaparthi
6991be2977
29-07-2009 - * The ETS table created for load balancing of requests was not
being deleted which led to the node not being able to create
any more ETS tables if queries were made to many number of
webservers. ibrowse now deletes the ETS table it creates once the
last connection to a webserver is dropped.
Reported by Seth Falcon.
* Spurious data being returned at end of body in certain cases of
chunked encoded responses from the server.
Reported by Chris Newcombe.
hace 16 años
Chandrashekhar Mullaparthi
9b0a927e39
Fixed bug in returning response when the server returns a Connection: Close header
hace 16 años
Chandrashekhar Mullaparthi
2e0889e70a
Fix to allow functions to be passed as body. Thanks to http://github.com/benoitc
hace 16 años
Chandrashekhar Mullaparthi
2768725f81
Added option {stream_to, {process(), once}} to allow calling process to control data rate on socket
hace 16 años
Chandrashekhar Mullaparthi
cf294d5c88
ibrowse-1.5.0. See README for details
hace 16 años
Chandrashekhar Mullaparthi
23faddf04f
ibrowse-1.5.0. See README for details
hace 16 años
chandrusf
4a8a73f90a
ibrowse was not reading all the options from its config file.
hace 17 años
chandrusf
f75237940a
Lots of new features
hace 17 años
chandrusf
21f014f417
Another fix for the save_response_to_file feature
hace 17 años
chandrusf
0cfebc09a0
A mofidied version of a patch sent in by Ram Krishnan to enhance the save_response_to_file option
hace 17 años