Minor enhancement
Added max_requests to avoid ECONNRESET for a server that allows a limited number of requests on a connection. Pull request #42 by James Tucker.
Request failures are now raised with the backtrace of the original exception. This gives better insight into the reason for the failure. See #41 by Andrew Cholakian.
OpenSSL is no longer required. If OpenSSL is not available an exception will be raised when attempting to access HTTPS resources. Feature request by André Arko
Bug fixes
Explain the proper way of sending parameters depending upon the request method. Issue #35 by André Arko.
Handle Errno::ETIMEDOUT by retrying the request. Issue #36 by André Arko.
Requests retried by ruby 2.x are no longer retried by net-http-persistent.
Finish the connection if an otherwise unhandled exception happens during a request. Bug #46 by Mark Oude Veldhuis.
detect_idle_timeout now assumes a StandardError indicates the idle timeout has been found. Bug #43 by James Tucker.
Minor enhancements
Added Net::HTTP::Persistent::detect_idle_timeout which can be used to determine the idle timeout for a host.
The read timeout may now be updated for every request. Issue #33 by Mislav Marohnić
Added NO_PROXY support. Pull Request #31 by Laurence Rowe.
Added cert and key aliases for Net::HTTP compatibility. Pull request #26 by dlee.
The artifice gem now disables SSL session reuse to prevent breakage of testing frameworks. Pull Request #29 by Christopher Cooke.
Disabled Net::HTTP::Persistent::SSLReuse on Ruby 2+. This feature is now built-in to Net::HTTP.
Bug fixes
Socket options are set again following connection reset. Pull request #28 by cmaion.
shutdown now works even if no connections were made. Pull Request #24 by James Tucker.
Updated test RSA key size to 1024 bits. Bug #25 by Gunnar Wolf.
The correct host:port are shown in the exception when a proxy connection fails. Bug #30 by glebtv.
Minor enhancement
Added JRuby compatibility by default for HTTPS connections. (JRuby lacks OpenSSL::SSL::Session.)
Minor enhancement
Net::HTTP::Persistent#idle_timeout may be set to nil to disable expiration of connections. Pull Request #21 by Aaron Stone
Bug fix
Fix variable shadowing warning.
Bug fix
Reusing SSL connections with HTTP proxies now works. Issue #15 by Paul Ingham and mcrmfc
Minor enhancements
The proxy may be changed at any time.
The allowed SSL version may now be set via ssl_version. Issue #16 by astera
Added Net::HTTP::Persistent#override_headers which allows overriding
Net::HTTP default headers like User-Agent. See Net::HTTP::Persistent@Headers for details. Issue #17 by andkerosine
Bug fixes
The ruby 1.8 speed monkeypatch now handles EAGAIN for windows users. Issue #12 by Alwyn Schoeman
Fixed POST example in README. Submitted by injekt.
Fixed various bugs in the shutdown of connections especially cross-thread (which you shouldn't be doing anyways).
Bug fixes
When FakeWeb or WebMock are loaded SSL sessions will not be reused to prevent breakage of testing frameworks. Issue #13 by Matt Brictson, pull request #14 by Zachary Scott
SSL connections are reset when the SSL parameters change. Mechanize issue #194 by dsisnero
Last-use times are now cleaned up in shutdown.
Minor enhancement
net-http-persistent now complains if OpenSSL::SSL::VERIFY_PEER is equal to OpenSSL::SSL::VERIFY_NONE. If you have a platform that is broken this way you must define the constant:
I_KNOW_THAT_OPENSSL_VERIFY_PEER_EQUALS_VERIFY_NONE_IS_WRONG = nil
at the top level of your application to disable the warning.
Bug fix
Fix persisting SSL sessions through HTTP proxies. Mechanize issue #178 by Robert Poor, net-http-persistent issues #10, #11.
Bug fix
Finish connections that were closed by Net::HTTP so they can be restarted.
Bug fix
If a request object already contains a Connection header it will no longer be overridden. This allows keep-alive connections to be disabled on a per-request basis.
Minor Enhancement
The time since last use for a connection is now recorded in error messages for the connection.
Minor Enhancements
Added timeouts for idle connections which are set through idle_timeout. The default timeout is 5 seconds. Reducing the idle timeout is preferred over setting retry_change_requests to true if you wish to avoid the "too many connection resets" error when POSTing data.
Documented tunables and settings in one place in Net::HTTP::Persistent
Minor Enhancement
For HTTPS connections, SSL sessions are now reused avoiding the extra round trips and computations of extra SSL handshakes. If you have problems with SSL session reuse it can be disabled by Net::HTTP::Persistent#reuse_ssl_sessions
Bug Fixes
The default certificate store is now used even if verify_mode was not set. Issue #7, Pull Request #8 by Matthew M. Boedicker
Incompatibility
Net::HTTP::Persistent#verify_mode now defaults to OpenSSL::SSL::VERIFY_PEER. This may cause HTTPS request failures if your default certificate store lacks the correct certificates.
Minor Enhancement
Added Net::HTTP::Persistent#cert_store to set an SSL certificate store which defaults to the OpenSSL default certificate store.
HTTPS server certificates will be validated when this option is combined with setting Net::HTTP::Persistent#verify_mode to OpenSSL::SSL::VERIFY_PEER.
Bug Fix
Requests with OpenSSL errors are retried now. Pull Request #5 by James Tucker.
Minor Enhancement
Added Net::HTTP::Persistent#retry_change_requests which allows POST and other non-idempotent requests to be retried automatically. Take care when enabling this option to ensure the server will handle multiple POSTs with the same data in a sane manner.
Minor Enhancement
Added Net::HTTP::Persistent#pipeline which integrates with net-http-pipeline when it is present.
Bug Fix
Perform a case-insensitive check of the URI scheme for HTTPS URIs
Bug Fix
Net::HTTP::Persistent#request now handles Errno::EINVAL as a connection reset and will be retried for idempotent requests. Reported by Aaron Qian.
Minor Enhancement
Added Net::HTTP::Persistent#socket_options to set multiple socket options at socket startup.
Bug Fix
Only set TCP_NODELAY if the connection has an @socket. Allows net-http-persistent to be used with fake_web. Reported by Sathish Pasupunuri.
Bug fix
Only set TCP_NODELAY at connection start. Reported by Brian Henderson.
Minor Enhancements
Set TCP_NODELAY on created socket if possible. (This will only help for requests that send bodies.)
Bug Fixes
Don't finish the connection when we're retrying, reset it. Patch by James Tucker.
Minor Enhancements
Added the very dangerous shutdown_in_all_threads. IT IS DANGEROUS!. Patch by Torsten Schönebaum.
Bug Fixes
connection_for no longer tries to ssl-enable an existing connection. Patch by Joseph West.
Minor Enhancements
HTTP versions are now recorded. This information is not currently used.
Bug Fixes
shutdown no longer fails when an unstarted HTTP connection is shut down.
Bug Fixes
Fix duplicated test name. Noted by Peter Higgins.
shutdown now works even when no connections were made.
Bug Fixes
Actually have request only finish a connection. Somehow this got missed.
Bug Fixes
Fix example code (pointed out by Alex Stahl)
Bug Fixes
request only finishes a connection instead of restarting it. This helps prevents errors on non-idempotent HTTP requests after errors.
connection_for handles EHOSTDOWN like reset
Bug Fixes
Don't alter Net::BufferedIO#rbuf_fill on 1.9+
Minor Enhancements
Net::HTTP#read_timeout is now supported
Net::HTTP#open_timeout is now supported
Net::HTTP::Persistent#request now supports a block like Net::HTTP#request
Minor Enhancements
Proxy support, see Net::HTTP::Persistent::new, Net::HTTP::Persistent#proxy_from_env
Added name parameter to Net::HTTP::Persistent::new for separation of connection pools.
Added Net::HTTP::Persistent#shutdown so you can clean up after yourself
Net::HTTP::Persistent now suppresses "peer certificate won't be verified in this SSL session" warning.
Bug Fixes
Net::HTTP::Persistent retries requests in accordance with RFC 2616.
Minor Enhancements
Added debug_output
Now uses Hoe minitest plugin
Bug Fixes
Tests pass on 1.9
Major Enhancements
Birthday!
Generated with the Darkfish Rdoc Generator 2.