Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Jan 20, 2011
  1. Upped version to 2.1.3

    Chandrashekhar Mullaparthi authored
  2. Rebarize ibrowse. Slightly tweakeed Andrew Tunnell-Jones' pull request

    Chandrashekhar Mullaparthi authored
  3. Various changes. See README for details

    Chandrashekhar Mullaparthi authored
Commits on Jan 19, 2011
  1. @andrewtj
  2. @andrewtj

    Use rebar as build tool

    andrewtj authored
    * 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/*
Commits on Jan 16, 2011
  1. Merge branch 'stream_next_reset_inac_timer' of https://github.com/fdm…

    Chandrashekhar Mullaparthi authored
    …anana/ibrowse into fdmanana-stream_next_reset_inac_timer
Commits on Jan 11, 2011
  1. Merge branch 'allow_custom_nodelay' of https://github.com/fdmanana/ib…

    Chandrashekhar Mullaparthi authored
    …rowse into fdmanana-allow_custom_nodelay
  2. Merge branch 'stream_iolists' of https://github.com/fdmanana/ibrowse

    Chandrashekhar Mullaparthi authored
    …into fdmanana-stream_iolists
  3. Merge branch 'fix_stream_to_once_get_header' of https://github.com/fd…

    Chandrashekhar Mullaparthi authored
    …manana/ibrowse into fdmanana-fix_stream_to_once_get_header
  4. Merge branch 'clear_inac_timeout_before_send' of https://github.com/f…

    Chandrashekhar Mullaparthi authored
    …dmanana/ibrowse into fdmanana-clear_inac_timeout_before_send
  5. Make test URL an argument

    Chandrashekhar Mullaparthi authored
Commits on Jan 10, 2011
  1. @fdmanana
  2. @fdmanana

    Don't trigger new inactivity timer when socket data is received and c…

    fdmanana authored
    …aller 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.
Commits on Jan 9, 2011
  1. @fdmanana

    Reset inactivity timeout when stream_next is invoked

    fdmanana authored
    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.
  2. @fdmanana

    Allow custom nodelay socket option

    fdmanana authored
    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.
Commits on Jan 7, 2011
  1. @fdmanana

    Don't convert chunks into binaries

    fdmanana authored
    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.
Commits on Jan 5, 2011
  1. @fdmanana
  2. @fdmanana

    Fix invalid req_timedout errors

    fdmanana authored
    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.
Commits on Dec 20, 2010
  1. Pipelining wasn't working when used with the {stream_to, {Pid, once}}…

    Chandrashekhar Mullaparthi authored
    … option
Commits on Dec 10, 2010
  1. Release 2.1.1. Various fixes. See README

    Chandrashekhar Mullaparthi authored
  2. Merge branch 'content_length_empty_body' of https://github.com/fdmana…

    Chandrashekhar Mullaparthi authored
    …na/ibrowse into fdmanana-content_length_empty_body
  3. @textendo
  4. @textendo

    - fix bug when using an ssl socket with socket_options.

    textendo authored
    do_setopts/3 was being called with the 3rd arg as a boolean instead of the "State".
Commits on Nov 16, 2010
  1. @fdmanana

    Two changes:

    fdmanana authored
    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
Commits on Nov 10, 2010
  1. Corrected names of contributors in README

    Chandrashekhar Mullaparthi authored
  2. Corrected version number in README

    Chandrashekhar Mullaparthi authored
  3. Release 2.1.0

    Chandrashekhar Mullaparthi authored
Commits on Sep 24, 2010
  1. Removed spurious io:format

    Chandrashekhar Mullaparthi authored
Commits on Sep 22, 2010
  1. Various changes. See README for details

    Chandrashekhar Mullaparthi authored
Commits on Jul 17, 2010
  1. Merged changes from Filipe David Manana to use the base64 OTP module …

    Chandrashekhar Mullaparthi authored
    …for Base64 encoding/decoding
Commits on Jul 10, 2010
  1. @fdmanana

    Use Erlang's OTP base64 module (available since R12B02) and avoid dup…

    fdmanana authored
    …licated 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"...>>}
Commits on Jun 11, 2010
  1. Removed use of concat_binary

    Chandrashekhar Mullaparthi authored
  2. Removed use of concat_binary

    Chandrashekhar Mullaparthi authored
Commits on Jun 10, 2010
  1. Fixed bug in https requests without a proxy in between

    Chandrashekhar Mullaparthi authored
Commits on May 31, 2010
  1. Clarified license

    Chandrashekhar Mullaparthi authored
Something went wrong with that request. Please try again.