Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

269 linhas
13 KiB

  1. CONTRIBUTIONS & CHANGE HISTORY
  2. ==============================
  3. 13-04-2011 - v2.2.0
  4. * Filipe David Manana added IPv6 support. This is a mjor new
  5. feature, Thank you Filipe!
  6. * Joseph Wayne Norton contributed tweaks to .gitignore
  7. 09-02-2011 - v2.1.4
  8. * Fixed a bug reported by Ryan Zezeski with the
  9. save_response_to_file option.
  10. https://github.com/cmullaparthi/ibrowse/issues#issue/33
  11. 16-01-2011 - v2.1.3
  12. * Fixed issues with streaming and chunked responses when using
  13. the 'caller controls socket' feature. See following links for
  14. details. Contributed by Filipe David Manana.
  15. https://github.com/cmullaparthi/ibrowse/pull/24
  16. https://github.com/cmullaparthi/ibrowse/pull/25
  17. https://github.com/cmullaparthi/ibrowse/pull/27
  18. https://github.com/cmullaparthi/ibrowse/pull/28
  19. https://github.com/cmullaparthi/ibrowse/pull/29
  20. * Fix for issue 32 reported by fholzhauser
  21. https://github.com/cmullaparthi/ibrowse/issues#issue/32
  22. * Fixed some dialyzer warnings. Thanks to Kostis for reporting
  23. them.
  24. 20-12-2010 - v2.1.2
  25. * Pipelining wasn't working when used in conjunction with the
  26. {stream_to, {self(), once}} option. Bug report by
  27. Filipe David Manana.
  28. 10-12-2010 - v2.1.1
  29. * Fix for https://github.com/cmullaparthi/ibrowse/issues/issue/20
  30. by Filipe David Manana
  31. * Fix for https://github.com/cmullaparthi/ibrowse/issues/issue/21
  32. by Filipe David Manana
  33. * Fix for https://github.com/cmullaparthi/ibrowse/issues/issue/23
  34. by Filipe David Manana
  35. * Fix for bugs when using SSL by Jo?o Lopes
  36. 25-10-2010 - v2.1.0
  37. * Fixed build on OpenSolaris. Bug report and patch from
  38. tholschuh.
  39. http://github.com/cmullaparthi/ibrowse/issues/issue/10
  40. * Fixed behaviour of inactivity_timeout option. Reported by
  41. Jo?o Lopes.
  42. http://github.com/cmullaparthi/ibrowse/issues/issue/11
  43. * Prevent atom table pollution when bogus URLs are input to
  44. ibrowse. Bug report by Jo?o Lopes.
  45. http://github.com/cmullaparthi/ibrowse/issues/issue/13
  46. * Automatically do Chunked-Transfer encoding of request body
  47. when the body is generated by a fun. Patch provided by
  48. Filipe David Manana.
  49. http://github.com/cmullaparthi/ibrowse/issues/issue/14
  50. * Depending on input options, ibrowse sometimes included multiple
  51. Content-Length headers. Bug reported by Paul J. Davis
  52. http://github.com/cmullaparthi/ibrowse/issues/issue/15
  53. * Deal with webservers which do not provide a Reason-Phrase on the
  54. response Status-Line. Patch provided by Jeroen Koops.
  55. http://github.com/cmullaparthi/ibrowse/issues/issue/16
  56. * Fixed http://github.com/cmullaparthi/ibrowse/issues/issue/17
  57. This was reported by Filipe David Manana.
  58. * Fixed http://github.com/cmullaparthi/ibrowse/issues/issue/19
  59. This was reported by Dan Kelley and Filipe David Manana.
  60. * Added ibrowse:stream_close/1 to close the connection
  61. associated with a certain response stream. Patch provided by
  62. Jo?o Lopes.
  63. * Prevent port number being included in the Host header when port
  64. 443 is intended. Bug reported by Andrew Tunnell-Jones
  65. 24-09-2010 - v2.0.1
  66. * Removed a spurious io:format statement
  67. 22-09-2010 - v2.0.0.
  68. * Added option preserve_chunked_encoding. This allows the
  69. caller to get the raw HTTP response when the
  70. Transfer-Encoding is Chunked. This feature was requested
  71. by Benoit Chesneau who wanted to write a HTTP proxy using
  72. ibrowse.
  73. * Fixed bug with the {stream_to, {Pid, once}} option. Bug
  74. report and lot of help from Filipe David Manana. Thank
  75. you Filipe.
  76. * The {error, conn_failed} and {error, send_failed} return
  77. values are now of the form {error, {conn_failed, Err}}
  78. and {error, {send_failed, Err}}. This is so that the
  79. specific socket error can be returned to the caller. I
  80. think it looks a bit ugly, but that is the best
  81. compromise I could come up with.
  82. * Added application configuration parameters
  83. default_max_sessions and default_max_pipeline_size. These
  84. were previously hard coded to 10.
  85. * Versioning of ibrowse now follows the Semantic Versioning
  86. principles. See http://semver.org. Thanks to Anthony
  87. Molinaro for nudging me in this direction.
  88. * The connect_timeout option now only applies to the
  89. connection setup phase. In previous versions, the time
  90. taken to setup the connection was deducted from the
  91. specified timeout value for the request.
  92. 17-07-2010 - * Merged change made by Filipe David Manana to use the base64
  93. module for encoding/decoding.
  94. 11-06-2010 - * Removed use of deprecated concat_binary. Patch supplied by
  95. Steve Vinoski
  96. 10-06-2010 - * Fixed bug in https requests not going via the proxy
  97. 12-05-2010 - * Added support for the CONNECT method to tunnel HTTPS through
  98. a proxy. When a https URL is requested through a proxy,
  99. ibrowse will automatically use the CONNECT method to first
  100. setup a tunnel through the proxy. Once this succeeds, the
  101. actual request is dispatched. Successfully tested with the
  102. new SSL implementation in R13B-03
  103. * Added SSL support for direct connections.
  104. See ibrowse:spawn_worker_process/1 and
  105. ibrowse:spawn_link_worker_process/1
  106. * Added option to return raw status line and raw unparsed headers
  107. 23-04-2010 - * Fixes to URL parsing by Karol Skocik
  108. 08-11-2009 - * Added option headers_as_is
  109. 04-10-2009 - * Patch from Kostis Sagonas to cleanup some code and suppress
  110. dialyzer warnings
  111. 24-09-2009 - * When a filename was supplied with the 'save_response_to_file'
  112. option, the option was being ignored. Bug report from
  113. Adam Kocoloski
  114. 05-09-2009 - * Introduced option to allow caller to set socket options.
  115. 29-07-2009 - * The ETS table created for load balancing of requests was not
  116. being deleted which led to the node not being able to create
  117. any more ETS tables if queries were made to many number of
  118. webservers. ibrowse now deletes the ETS table it creates once the
  119. last connection to a webserver is dropped.
  120. Reported by Seth Falcon.
  121. * Spurious data being returned at end of body in certain cases of
  122. chunked encoded responses from the server.
  123. Reported by Chris Newcombe.
  124. 03-07-2009 - Added option {stream_to, {Pid, once}} which allows the caller
  125. to control when it wants to receive more data. If this option
  126. is used, the call ibrowse:stream_next(Req_id) should be used
  127. to get more data.
  128. * Patch submitted by Steve Vinoski to remove compiler warnings
  129. about the use of obsolete guards
  130. 29-06-2009 - * Fixed following issues reported by Oscar Hellstr?m
  131. * Use {active, once} instead of {active, true}
  132. * Fix 'dodgy' timeout handling
  133. * Use binaries internally instead of lists to reduce memory
  134. consumption on 64 bit platforms. The default response format
  135. is still 'list' to maintain backwards compatibility. Use the
  136. option {response_format, binary} to get responses as binaries.
  137. * Fixed chunking bug (reported by Adam Kocoloski)
  138. * Added new option {inactivity_timeout, Milliseconds} to timeout
  139. requests if no data is received on the link for the specified
  140. interval. Useful when responses are large and links are flaky.
  141. * Added ibrowse:all_trace_off/0 to turn off all tracing
  142. * Change to the way responses to asynchronous requests are
  143. returned. The following messages have been removed.
  144. * {ibrowse_async_response, Req_id, {chunk_start, Chunk_size}}
  145. * {ibrowse_async_response, Req_id, chunk_end}
  146. * Fixed Makefiles as part of Debian packaging
  147. (thanks to Thomas Lindgren)
  148. * Moved repository from Sourceforge to Github
  149. 11-06-2009 - * Added option to control size of streamed chunks. Also added
  150. option for the client to receive responses in binary format.
  151. 21-05-2008 - * Fixed bug in reading some options from the ibrowse.conf file.
  152. Reported by Erik Reitsma on the erlyaws mailing list
  153. * Fixed bug when cleaning up closing connections
  154. 27-03-2008 - * Major rewrite of the load balancing feature. Additional module,
  155. ibrowse_lb.erl, introduced to achieve this.
  156. * Can now get a handle to a connection process which is not part of
  157. the load balancing pool. Useful when an application is making
  158. requests to a webserver which are time consuming (such as
  159. uploading a large file). Such requests can be put on a separate
  160. connection, and all other smaller/quicker requests can use the
  161. load balancing pool. See ibrowse:spawn_worker_process/2 and
  162. ibrowse:spawn_link_worker_process/2
  163. * Ram Krishnan sent a patch to enable a client to send a lot of
  164. data in a request by providing a fun which is invoked by the
  165. connection handling process. This fun can fetch the data from
  166. any where. This is useful when trying to upload a large file
  167. to a webserver.
  168. * Use the TCP_NODELAY option on every socket by default
  169. * Rudimentary support for load testing of ibrowse. Undocumented,
  170. but see ibrowse_test:load_test/3. Use the source, Luke!
  171. * New function ibrowse:show_dest_status/2 to view state of
  172. connections/pipelines to a web server
  173. 20-02-2008 - Ram Krishnan sent another patch for another hidden bug in the
  174. save_response_to_file feature.
  175. 07-02-2008 - Ram Krishnan (kriyative _at_ gmail dot com) sent a simple patch to
  176. enable specifying the filename in the save_response_to_file option.
  177. When testing the patch, I realised that my original implementation
  178. of this feature was quite flaky and a lot of corner cases were
  179. not covered. Fixed all of them. Thanks Ram!
  180. 17-10-2007 - Matthew Reilly (matthew dot reilly _at_ sipphone dot com)
  181. sent a bug report and a fix. If the chunk trailer spans two TCP
  182. packets, then ibrowse fails to recognise that the chunked transfer
  183. has ended.
  184. 29-08-2007 - Bug report by Peter Kristensen(ptx _at_ daimi dot au dot dk).
  185. ibrowse crashes when the webserver returns just the Status line
  186. and nothing else.
  187. 28-06-2007 - Added host_header option to enable connection to secure sites
  188. via stunnel
  189. 20-04-2007 - Geoff Cant sent a patch to remove URL encoding for digits in
  190. ibrowse_lib:url_encode/1.
  191. ibrowse had a dependency on the inets application because the
  192. ibrowse_http_client.erl invoked httpd_util:encode_base64/1. This
  193. dependency is now removed and the encode_base64/1 has been
  194. implemented in ibrowse_lib.erl
  195. 06-03-2007 - Eric Merritt sent a patch to support WebDAV requests.
  196. 12-01-2007 - Derek Upham sent in a bug fix. The reset_state function was not
  197. behaving correctly when the transfer encoding was not chunked.
  198. 13-11-2006 - Youn?s Hafri reported a bug where ibrowse was not returning the
  199. temporary filename when the server was closing the connection
  200. after sending the data (as in HTTP/1.0).
  201. Released ibrowse under the BSD license
  202. 12-10-2006 - Chris Newcombe reported bug in dealing with requests where no
  203. body is expected in the response. The first request would succeed
  204. and the next request would hang.
  205. 24-May-2006 - Sean Hinde reported a bug. Async responses with pipelining was
  206. returning the wrong result.
  207. 08-Dec-2005 - Richard Cameron (camster@citeulike.org). Patch to ibrowse to
  208. prevent port number being included in the Host header when port
  209. 80 is intended.
  210. 22-Nov-2005 - Added ability to generate requests using the Chunked
  211. Transfer-Encoding.
  212. 08-May-2005 - Youn?s Hafri made a CRUX LINUX port of ibrowse.
  213. http://yhafri.club.fr/crux/index.html