diff --git a/Makefile b/Makefile index f0528c3..2380676 100644 --- a/Makefile +++ b/Makefile @@ -9,3 +9,10 @@ clean: install: all mkdir -p $(DESTDIR)/lib/ibrowse-$(IBROWSE_VSN)/ cp -r ebin $(DESTDIR)/lib/ibrowse-$(IBROWSE_VSN)/ + +test: all + erl -noshell -pa ebin -s ibrowse -s ibrowse_test unit_tests \ + -s ibrowse_test verify_chunked_streaming \ + -s ibrowse_test test_chunked_streaming_once \ + -s erlang halt + diff --git a/README b/README index ea948e6..f3ed7a1 100644 --- a/README +++ b/README @@ -22,8 +22,83 @@ Version : 2.0.1 Latest version : git://github.com/cmullaparthi/ibrowse.git +CONTRIBUTORS +============ +The following people have helped maked ibrowse better by reporting bugs, +supplying patches and also asking for new features. Please write to me if you +have contributed and I've missed you out. + +In alphabetical order: + +Adam Kocoloski +Andrew Tunnell-Jones +Anthony Molinaro +Benoit Chesneau +Chris Newcombe +Dan Kelley +Derek Upham +Eric Merritt +Erik Reitsma +Filipe David Manana +Geoff Cant +Jeroen Koops +Joćo Lopes +Karol Skocik +Kostis Sagonas +Matthew Reilly +Oscar Hellström +Paul J. Davis +Peter Kristensen +Ram Krishnan +Richard Cameron +Sean Hinde +Seth Falcon +Steve Vinoski +Thomas Lindgren +YounĆØs Hafri +tholschuh (https://github.com/tholschuh/) + CONTRIBUTIONS & CHANGE HISTORY ============================== +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 diff --git a/doc/ibrowse.html b/doc/ibrowse.html index 88cba60..3aec4a8 100644 --- a/doc/ibrowse.html +++ b/doc/ibrowse.html @@ -9,14 +9,14 @@
Copyright © 2005-2010 Chandrashekhar Mullaparthi
-Version: 2.0.1
+Version: 2.1.0
Behaviours: gen_server.
Authors: Chandrashekhar Mullaparthi (chandrashekhar dot mullaparthi at gmail dot com).
-The ibrowse application implements an HTTP 1.1 client. This +
The ibrowse application implements an HTTP 1.1 client in erlang. This module implements the API of the HTTP client. There is one named process called 'ibrowse' which assists in load balancing and maintaining configuration. There is one load balancing process per unique webserver. There is one process to handle one TCP connection to a webserver @@ -87,20 +87,24 @@ send_req/4, send_req/5, send_req/6.
{error, {Reason, {stat_code, StatusCode}, HTTP_headers}}
- inactivity_timeout
option is useful when
- dealing with large response bodies and/or slow links. In these
- cases, it might be hard to estimate how long a request will take to
- complete. In such cases, the client might want to timeout if no
- data has been received on the link for a certain time interval.The inactivity_timeout
option is useful when
+dealing with large response bodies and/or slow links. In these
+cases, it might be hard to estimate how long a request will take to
+complete. In such cases, the client might want to timeout if no
+data has been received on the link for a certain time interval.
connect_timeout
option is to specify how long the
@@ -343,7 +351,9 @@ send_req/4, send_req/5, send_req/6.
show_dest_status() -> any()
-Shows some internal information about load balancing. Info + about workers spawned using spawn_worker_process/2 or + spawn_link_worker_process/2 is not included.
spawn_link_worker_process(Host::string(), Port::integer()) -> {ok, pid()}
-Same as spawn_worker_process/2 except the the calling process + is linked to the worker process which is spawned.
spawn_worker_process(Host::string(), Port::integer()) -> {ok, pid()}
-Same as spawn_worker_process/1 but takes as input a Host and Port + instead of a URL.
{error, closing_on_request}+
stream_close(Req_id::req_id()) -> ok | {error, unknown_req_id}
+Tell ibrowse to close the connection associated with the
+ specified stream. Should be used in conjunction with the
+ stream_to
option. Note that all requests in progress on
+ the connection which is serving this Req_id will be aborted, and an
+ error returned.
stream_next(Req_id::req_id()) -> ok | {error, unknown_req_id}
@@ -446,6 +467,6 @@ send_req/4, send_req/5, send_req/6.Generated by EDoc, Sep 24 2010, 06:42:36.
+Generated by EDoc, Nov 10 2010, 06:04:33.