Refactor the structure of ServerHandler:
This is a cleanup to the structure of the sources.
* Rename to ServerHandler
* Move private implementation declaration to separate header
* De-inline function definitions in the class declaration.
Add [overlay] configuration section (experimental):
This configuration section uses the new BasicConfig interface that supports
key-value pairs in the section. Some exposition is added to the example cfg
file. The new settings for overlay are related to the Hub and Spoke feature
which is currently in development. Production servers should not set
these configuration options, they are clearly marked experimental in the
example cfg file.
Add Section::name:
The Section object now stores its name for better diagnostic messages.
Create Ripple SSL contexts using std::make_shared.
Add shared_ptr<boost::asio::ssl::context> to ssl_bundle:
This gives the ssl_bundle shared ownership of the underlying ssl context
so that ownership of the bundle may be transferred to other classes without
introduce lifetime issues.
Use ssl_bundle in Overlay::Peer
Use shared_ptr to SSL context in Overlay:
These changes are a prerequisite for the universal port. They allow the
ssl_bundle to retain ownership of the SSL context via shared_ptr.
* Overlay uses shared_ptr to SSL context
* Removed undocumented PEER_SSL_CIPHER_LIST configuration setting
Persist HTTP peer io_service::work lifetime:
This simplification eliminates any potential for bugs caused by incorrect
lifetime management of the io_service::work object.
De-pimpl HTTP::Server
Rename ServerImpl data members
Tidy up HTTP::Port interface
Fix block on ~Door for pending objects
Block ~ServerImpl for pending objects
Always detect ssl in HTTP server
Add new Handler interfaces
Add HTTP::Writer interface:
The Writer interface allows clients to supply a "pull" style object to provide
responses to HTTP Requests. The interface is designed to support a coroutine
based implementation.
Split implementation into three headers
Use ssl_bundle in SSLPeer
Call HTTP Handler with legacy peer handshake
Construct Overlay::Peer with ssl_bundle and legacy handshake