|
CONTRIBUTIONS & CHANGE HISTORY
|
|
==============================
|
|
|
|
21-09-2018 - v4.4.2
|
|
* Fix for #163 - default to using IPv4
|
|
|
|
23-08-2018 - v4.4.1
|
|
* Fixes to TLS socket handling (PR#163)
|
|
* Fix ipv6 address family handling (PR#155)
|
|
* Don't send messages to closed/inactive connections (PR#152)
|
|
|
|
28-01-2017 - v4.4
|
|
* Fixes to SOCKS over SSL processing
|
|
* Added stream_full_chunks option
|
|
* Merged pull requests 145, 151
|
|
|
|
07-06-2016 - v4.3
|
|
* Adopted erlang.mk for compiling. I find it easier to understand
|
|
how 'make' behaves compared to rebar. This repo can still be built
|
|
using rebar for those who prefer it
|
|
* Removed references to lager. Introduced configurable logging function
|
|
* Fixed an issue where the calling process was getting an extra
|
|
spurious timeout message when the request was timing out
|
|
|
|
19-04-2016 - v4.2.4
|
|
* Fixed travis-ci build as it was failing in running tests.
|
|
No code changes to ibrowse
|
|
|
|
19-04-2016 - v4.2.3
|
|
* Fix for https://github.com/cmullaparthi/ibrowse/issues/143
|
|
* Fix for https://github.com/cmullaparthi/ibrowse/issues/142
|
|
* Fix for https://github.com/cmullaparthi/ibrowse/issues/139
|
|
* Fixed behaviour of option preserve_status_line
|
|
|
|
25-11-2015 - v4.2.2
|
|
* Fix to ibrowse.app.src to enable publishing using Hex
|
|
|
|
25-11-2015 - v4.2.1
|
|
* Merged pull request https://github.com/cmullaparthi/ibrowse/pull/132
|
|
* Merged pull request https://github.com/cmullaparthi/ibrowse/pull/137
|
|
|
|
28-09-2015 - v4.2
|
|
* Merged long pending improvements to pipelining
|
|
https://github.com/cmullaparthi/ibrowse/pull/123
|
|
* Merged pull request https://github.com/cmullaparthi/ibrowse/pull/131
|
|
|
|
03-08-2015 - v4.1.2
|
|
* R18 compatibility fix
|
|
https://github.com/cmullaparthi/ibrowse/issues/129
|
|
* Add max_attempts option
|
|
https://github.com/cmullaparthi/ibrowse/pull/125
|
|
* Fix for https://github.com/cmullaparthi/ibrowse/pull/120
|
|
* Enhanced SOCKS5 support
|
|
https://github.com/cmullaparthi/ibrowse/pull/117
|
|
|
|
10-07-2014 - v4.1.1
|
|
* Added support for accepting binaries as header names
|
|
* Fix for https://github.com/cmullaparthi/ibrowse/issues/110
|
|
* Fix for https://github.com/cmullaparthi/ibrowse/issues/111
|
|
* Fix for https://github.com/cmullaparthi/ibrowse/issues/112
|
|
|
|
18-04-2013 - v4.1.0
|
|
* Fix for https://github.com/cmullaparthi/ibrowse/issues/101
|
|
* Support for https://github.com/cmullaparthi/ibrowse/issues/90
|
|
* Fix for https://github.com/cmullaparthi/ibrowse/issues/86
|
|
* Merged various contributions. Please see commit history for details
|
|
* Introduced the return_raw_request option
|
|
|
|
09-04-2013 - v4.0.2
|
|
* Tagging master with new version to cover changes
|
|
contributed over the past few months via various pull requests
|
|
|
|
07-08-2012 - v4.0.1
|
|
* Fix issue 67 properly.
|
|
|
|
03-08-2012 - v4.0.0
|
|
* Fixed a regression in handling HEAD.
|
|
https://github.com/cmullaparthi/ibrowse/issues/67
|
|
|
|
* Fixed a bug in handling SSL requests through a proxy
|
|
|
|
06-04-2012 - v3.0.4
|
|
* Fix for the following issue
|
|
https://github.com/cmullaparthi/ibrowse/issues/67
|
|
|
|
13-03-2012 - v3.0.3
|
|
* Fixes the following issues
|
|
https://github.com/cmullaparthi/ibrowse/issues/64
|
|
https://github.com/cmullaparthi/ibrowse/issues/63
|
|
https://github.com/cmullaparthi/ibrowse/issues/62
|
|
|
|
31-01-2012 - v3.0.2
|
|
* Fixed bug when stopping ibrowse. Not service affecting.
|
|
|
|
23-01-2012 - v3.0.1
|
|
* Fixed bug highlighted by Dialyzer
|
|
|
|
23-01-2012 - v3.0.0
|
|
* Change to the way pipelining works.
|
|
* Fixed various issues reported
|
|
|
|
13-04-2011 - v2.2.0
|
|
* Filipe David Manana added IPv6 support. This is a major new
|
|
feature, Thank you Filipe!
|
|
* Joseph Wayne Norton contributed tweaks to .gitignore
|
|
|
|
09-02-2011 - v2.1.4
|
|
* Fixed a bug reported by Ryan Zezeski with the
|
|
save_response_to_file option.
|
|
https://github.com/cmullaparthi/ibrowse/issues#issue/33
|
|
|
|
16-01-2011 - v2.1.3
|
|
* Fixed issues with streaming and chunked responses when using
|
|
the 'caller controls socket' feature. See following links for
|
|
details. Contributed by Filipe David Manana.
|
|
https://github.com/cmullaparthi/ibrowse/pull/24
|
|
https://github.com/cmullaparthi/ibrowse/pull/25
|
|
https://github.com/cmullaparthi/ibrowse/pull/27
|
|
https://github.com/cmullaparthi/ibrowse/pull/28
|
|
https://github.com/cmullaparthi/ibrowse/pull/29
|
|
|
|
* Fix for issue 32 reported by fholzhauser
|
|
https://github.com/cmullaparthi/ibrowse/issues#issue/32
|
|
|
|
* Fixed some dialyzer warnings. Thanks to Kostis for reporting
|
|
them.
|
|
|
|
20-12-2010 - v2.1.2
|
|
* Pipelining wasn't working when used in conjunction with the
|
|
{stream_to, {self(), once}} option. Bug report by
|
|
Filipe David Manana.
|
|
|
|
10-12-2010 - v2.1.1
|
|
* Fix for https://github.com/cmullaparthi/ibrowse/issues/issue/20
|
|
by Filipe David Manana
|
|
|
|
* Fix for https://github.com/cmullaparthi/ibrowse/issues/issue/21
|
|
by Filipe David Manana
|
|
|
|
* Fix for https://github.com/cmullaparthi/ibrowse/issues/issue/23
|
|
by Filipe David Manana
|
|
|
|
* Fix for bugs when using SSL by Jo?o Lopes
|
|
|
|
25-10-2010 - v2.1.0
|
|
* Fixed build on OpenSolaris. Bug report and patch from
|
|
tholschuh.
|
|
http://github.com/cmullaparthi/ibrowse/issues/issue/10
|
|
|
|
* Fixed behaviour of inactivity_timeout option. Reported by
|
|
Jo?o Lopes.
|
|
http://github.com/cmullaparthi/ibrowse/issues/issue/11
|
|
|
|
* Prevent atom table pollution when bogus URLs are input to
|
|
ibrowse. Bug report by Jo?o Lopes.
|
|
http://github.com/cmullaparthi/ibrowse/issues/issue/13
|
|
|
|
* Automatically do Chunked-Transfer encoding of request body
|
|
when the body is generated by a fun. Patch provided by
|
|
Filipe David Manana.
|
|
http://github.com/cmullaparthi/ibrowse/issues/issue/14
|
|
|
|
* Depending on input options, ibrowse sometimes included multiple
|
|
Content-Length headers. Bug reported by Paul J. Davis
|
|
http://github.com/cmullaparthi/ibrowse/issues/issue/15
|
|
|
|
* Deal with webservers which do not provide a Reason-Phrase on the
|
|
response Status-Line. Patch provided by Jeroen Koops.
|
|
http://github.com/cmullaparthi/ibrowse/issues/issue/16
|
|
|
|
* Fixed http://github.com/cmullaparthi/ibrowse/issues/issue/17
|
|
This was reported by Filipe David Manana.
|
|
|
|
* Fixed http://github.com/cmullaparthi/ibrowse/issues/issue/19
|
|
This was reported by Dan Kelley and Filipe David Manana.
|
|
|
|
* Added ibrowse:stream_close/1 to close the connection
|
|
associated with a certain response stream. Patch provided by
|
|
Jo?o Lopes.
|
|
|
|
* Prevent port number being included in the Host header when port
|
|
443 is intended. Bug reported by Andrew Tunnell-Jones
|
|
|
|
24-09-2010 - v2.0.1
|
|
* Removed a spurious io:format statement
|
|
|
|
22-09-2010 - v2.0.0.
|
|
|
|
* Added option preserve_chunked_encoding. This allows the
|
|
caller to get the raw HTTP response when the
|
|
Transfer-Encoding is Chunked. This feature was requested
|
|
by Benoit Chesneau who wanted to write a HTTP proxy using
|
|
ibrowse.
|
|
|
|
* Fixed bug with the {stream_to, {Pid, once}} option. Bug
|
|
report and lot of help from Filipe David Manana. Thank
|
|
you Filipe.
|
|
|
|
* The {error, conn_failed} and {error, send_failed} return
|
|
values are now of the form {error, {conn_failed, Err}}
|
|
and {error, {send_failed, Err}}. This is so that the
|
|
specific socket error can be returned to the caller. I
|
|
think it looks a bit ugly, but that is the best
|
|
compromise I could come up with.
|
|
|
|
* Added application configuration parameters
|
|
default_max_sessions and default_max_pipeline_size. These
|
|
were previously hard coded to 10.
|
|
|
|
* Versioning of ibrowse now follows the Semantic Versioning
|
|
principles. See http://semver.org. Thanks to Anthony
|
|
Molinaro for nudging me in this direction.
|
|
|
|
* The connect_timeout option now only applies to the
|
|
connection setup phase. In previous versions, the time
|
|
taken to setup the connection was deducted from the
|
|
specified timeout value for the request.
|
|
|
|
17-07-2010 - * Merged change made by Filipe David Manana to use the base64
|
|
module for encoding/decoding.
|
|
|
|
11-06-2010 - * Removed use of deprecated concat_binary. Patch supplied by
|
|
Steve Vinoski
|
|
|
|
10-06-2010 - * Fixed bug in https requests not going via the proxy
|
|
|
|
12-05-2010 - * Added support for the CONNECT method to tunnel HTTPS through
|
|
a proxy. When a https URL is requested through a proxy,
|
|
ibrowse will automatically use the CONNECT method to first
|
|
setup a tunnel through the proxy. Once this succeeds, the
|
|
actual request is dispatched. Successfully tested with the
|
|
new SSL implementation in R13B-03
|
|
* Added SSL support for direct connections.
|
|
See ibrowse:spawn_worker_process/1 and
|
|
ibrowse:spawn_link_worker_process/1
|
|
* Added option to return raw status line and raw unparsed headers
|
|
|
|
23-04-2010 - * Fixes to URL parsing by Karol Skocik
|
|
|
|
08-11-2009 - * Added option headers_as_is
|
|
|
|
04-10-2009 - * Patch from Kostis Sagonas to cleanup some code and suppress
|
|
dialyzer warnings
|
|
|
|
24-09-2009 - * When a filename was supplied with the 'save_response_to_file'
|
|
option, the option was being ignored. Bug report from
|
|
Adam Kocoloski
|
|
|
|
05-09-2009 - * Introduced option to allow caller to set socket options.
|
|
|
|
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.
|
|
|
|
03-07-2009 - Added option {stream_to, {Pid, once}} which allows the caller
|
|
to control when it wants to receive more data. If this option
|
|
is used, the call ibrowse:stream_next(Req_id) should be used
|
|
to get more data.
|
|
* Patch submitted by Steve Vinoski to remove compiler warnings
|
|
about the use of obsolete guards
|
|
|
|
29-06-2009 - * Fixed following issues reported by Oscar Hellstr?m
|
|
* Use {active, once} instead of {active, true}
|
|
* Fix 'dodgy' timeout handling
|
|
* Use binaries internally instead of lists to reduce memory
|
|
consumption on 64 bit platforms. The default response format
|
|
is still 'list' to maintain backwards compatibility. Use the
|
|
option {response_format, binary} to get responses as binaries.
|
|
* Fixed chunking bug (reported by Adam Kocoloski)
|
|
* Added new option {inactivity_timeout, Milliseconds} to timeout
|
|
requests if no data is received on the link for the specified
|
|
interval. Useful when responses are large and links are flaky.
|
|
* Added ibrowse:all_trace_off/0 to turn off all tracing
|
|
* Change to the way responses to asynchronous requests are
|
|
returned. The following messages have been removed.
|
|
* {ibrowse_async_response, Req_id, {chunk_start, Chunk_size}}
|
|
* {ibrowse_async_response, Req_id, chunk_end}
|
|
* Fixed Makefiles as part of Debian packaging
|
|
(thanks to Thomas Lindgren)
|
|
* Moved repository from Sourceforge to Github
|
|
|
|
11-06-2009 - * Added option to control size of streamed chunks. Also added
|
|
option for the client to receive responses in binary format.
|
|
|
|
21-05-2008 - * Fixed bug in reading some options from the ibrowse.conf file.
|
|
Reported by Erik Reitsma on the erlyaws mailing list
|
|
* Fixed bug when cleaning up closing connections
|
|
|
|
27-03-2008 - * Major rewrite of the load balancing feature. Additional module,
|
|
ibrowse_lb.erl, introduced to achieve this.
|
|
* Can now get a handle to a connection process which is not part of
|
|
the load balancing pool. Useful when an application is making
|
|
requests to a webserver which are time consuming (such as
|
|
uploading a large file). Such requests can be put on a separate
|
|
connection, and all other smaller/quicker requests can use the
|
|
load balancing pool. See ibrowse:spawn_worker_process/2 and
|
|
ibrowse:spawn_link_worker_process/2
|
|
* Ram Krishnan sent a patch to enable a client to send a lot of
|
|
data in a request by providing a fun which is invoked by the
|
|
connection handling process. This fun can fetch the data from
|
|
any where. This is useful when trying to upload a large file
|
|
to a webserver.
|
|
* Use the TCP_NODELAY option on every socket by default
|
|
* Rudimentary support for load testing of ibrowse. Undocumented,
|
|
but see ibrowse_test:load_test/3. Use the source, Luke!
|
|
* New function ibrowse:show_dest_status/2 to view state of
|
|
connections/pipelines to a web server
|
|
|
|
20-02-2008 - Ram Krishnan sent another patch for another hidden bug in the
|
|
save_response_to_file feature.
|
|
|
|
07-02-2008 - Ram Krishnan (kriyative _at_ gmail dot com) sent a simple patch to
|
|
enable specifying the filename in the save_response_to_file option.
|
|
When testing the patch, I realised that my original implementation
|
|
of this feature was quite flaky and a lot of corner cases were
|
|
not covered. Fixed all of them. Thanks Ram!
|
|
|
|
17-10-2007 - Matthew Reilly (matthew dot reilly _at_ sipphone dot com)
|
|
sent a bug report and a fix. If the chunk trailer spans two TCP
|
|
packets, then ibrowse fails to recognise that the chunked transfer
|
|
has ended.
|
|
|
|
29-08-2007 - Bug report by Peter Kristensen(ptx _at_ daimi dot au dot dk).
|
|
ibrowse crashes when the webserver returns just the Status line
|
|
and nothing else.
|
|
|
|
28-06-2007 - Added host_header option to enable connection to secure sites
|
|
via stunnel
|
|
|
|
20-04-2007 - Geoff Cant sent a patch to remove URL encoding for digits in
|
|
ibrowse_lib:url_encode/1.
|
|
ibrowse had a dependency on the inets application because the
|
|
ibrowse_http_client.erl invoked httpd_util:encode_base64/1. This
|
|
dependency is now removed and the encode_base64/1 has been
|
|
implemented in ibrowse_lib.erl
|
|
|
|
06-03-2007 - Eric Merritt sent a patch to support WebDAV requests.
|
|
|
|
12-01-2007 - Derek Upham sent in a bug fix. The reset_state function was not
|
|
behaving correctly when the transfer encoding was not chunked.
|
|
|
|
13-11-2006 - Youn?s Hafri reported a bug where ibrowse was not returning the
|
|
temporary filename when the server was closing the connection
|
|
after sending the data (as in HTTP/1.0).
|
|
Released ibrowse under the BSD license
|
|
|
|
12-10-2006 - Chris Newcombe reported bug in dealing with requests where no
|
|
body is expected in the response. The first request would succeed
|
|
and the next request would hang.
|
|
|
|
24-May-2006 - Sean Hinde reported a bug. Async responses with pipelining was
|
|
returning the wrong result.
|
|
|
|
08-Dec-2005 - Richard Cameron (camster@citeulike.org). Patch to ibrowse to
|
|
prevent port number being included in the Host header when port
|
|
80 is intended.
|
|
|
|
22-Nov-2005 - Added ability to generate requests using the Chunked
|
|
Transfer-Encoding.
|
|
|
|
08-May-2005 - Youn?s Hafri made a CRUX LINUX port of ibrowse.
|
|
http://yhafri.club.fr/crux/index.html
|