Konstantin Tcepliaev
d785607a90
Allow comma-separated list in Transfer-Encoding response header.
This should, for example, allow user to specify "TE: gzip" header in request and unzip response body manually.
11 jaren geleden
presidentua
2a5e7503f2
fix typo in name of module ibrowse_socks5
12 jaren geleden
presidentua
d8150feeaf
add socks5 support
12 jaren geleden
Paul Peter Flis
cd6a380d6f
send message after async response timeout
12 jaren geleden
dis
bf362ac19c
allow binary header values
12 jaren geleden
Joseph Wayne Norton
1a80940891
Add worker_process_options for start and start_link purposes
Typically used to specify non-default, garbage collection options.
12 jaren geleden
Paul Oliver
d04d2078ca
Remove unused variable
12 jaren geleden
Chandrashekhar Mullaparthi
9b8b042fb7
Fixed issue #67 with eyes wide open
13 jaren geleden
Chandrashekhar Mullaparthi
52ce596b91
Bug fix for issue #67
13 jaren geleden
chandru
ca3b5478bf
Fixed bug in using proxy
13 jaren geleden
Chandrashekhar Mullaparthi
1fc0bc41e0
Fixed issue 67
13 jaren geleden
benoitc
f8ebe0bb4a
add missing methods and reorder them by type.
13 jaren geleden
benoitc
67eea91362
whitespaces
13 jaren geleden
Mistagrooves
7a8e53d855
Updated method of checking for empty
13 jaren geleden
Mistagrooves
2c709e3cad
Accounted for empty lists as well
13 jaren geleden
Mistagrooves
8dfdac84c1
A body generating function returning 0 data looks to the end server as the end of the entity which it shouldn't
13 jaren geleden
Chandrashekhar Mullaparthi
0f4f99b0be
Fixed dialyzer warning which showed a bug!
13 jaren geleden
Chandrashekhar Mullaparthi
d3d43e8529
Changes to load balancing and various other tweaks
13 jaren geleden
Chandrashekhar Mullaparthi
e05aa73f1a
Fixes for issues reported. Work in progress
14 jaren geleden
Filipe David Manana
ee06a43ddb
Use queue:peek/1 - more efficient than hd(queue:to_list(Queue))
14 jaren geleden
Alexey Romanov
0e42656980
save_response_to_file option extended to support appending to an existing file
14 jaren geleden
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 jaren geleden
Filipe David Manana
2ed96d5233
Add inet6 option to socket if host is IPv6 enabled
14 jaren geleden
Chandrashekhar Mullaparthi
6ed0f3efee
Fixed bug with the save_response_to_file option.
14 jaren geleden
Chandrashekhar Mullaparthi
74c337792a
Various changes. See README for details
14 jaren geleden
Filipe David Manana
53753a26ed
Fix misspelled value 'no_reply' => 'noreply'
14 jaren geleden
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 jaren geleden
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 jaren geleden
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 jaren geleden
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 jaren geleden
Filipe David Manana
ab5ac287b8
Fix worker process hanging when it received partial headers and the caller controls the socket
14 jaren geleden
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 jaren geleden
Chandrashekhar Mullaparthi
5b13e5b245
Pipelining wasn't working when used with the {stream_to, {Pid, once}} option
14 jaren geleden
Chandrashekhar Mullaparthi
3dabcaa174
Release 2.1.1. Various fixes. See README
14 jaren geleden
jlo
5344ea2a1a
- fix crash when requesting to close a stream connection.
14 jaren geleden
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 jaren geleden
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 jaren geleden
Chandrashekhar Mullaparthi
1a08838a3b
Release 2.1.0
14 jaren geleden
Chandrashekhar Mullaparthi
7958fc2f6b
Removed spurious io:format
14 jaren geleden
Chandrashekhar Mullaparthi
d756a2b0b6
Various changes. See README for details
14 jaren geleden
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 jaren geleden
Chandrashekhar Mullaparthi
05e1003547
Removed use of concat_binary
15 jaren geleden
Chandrashekhar Mullaparthi
d5580a5de2
Fixed bug in https requests without a proxy in between
15 jaren geleden
Chandrashekhar Mullaparthi
8a4653d4d4
Added support for tunnelling through a proxy. Other minor changes as indicated in the README
15 jaren geleden
Chandrashekhar Mullaparthi
dcee4cbe5d
Added option headers_as_is
15 jaren geleden
Chandrashekhar Mullaparthi
e9d35b9962
Patch from Kostis Sagonas to cleanup some code and suppress dialyzer warnings
15 jaren geleden
Chandrashekhar Mullaparthi
75bab56e5d
Fixed bug in processing of save_response_to_file option
15 jaren geleden
Chandrashekhar Mullaparthi
2e6bff7e8b
Allow socket options to be set by caller during the connect phase as well
15 jaren geleden
Chandrashekhar Mullaparthi
ce2cc0140e
Added option to allow caller to specify socket options
15 jaren geleden
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.
16 jaren geleden