Add beast::asio::ssl_bundle workaround:
This works around the limitation that 1.56 boost::asio::ssl::stream objects
do not support r-value move or construction. It is required when the stream
does not own the socket.
Return error_code from beast::http::basic_parser:
This changes the HTTP parser interface to return an error_code instead
of a bool. This eliminates the need for the error() member function and
simplifies calling code.
Keep a list of section config values that are not key/value pairs:
This change to BasicConfig stores all appended lines which are not key/value
pairs in a separate values vector which can be retrieved later. This is to
support sections containing both key/value pairs and a list of values.
Remove HTTP::ScopedStream:
This class was used to allow stream style operator<< to write to the
HTTP::Session. This is being superceded by a more robust object-based model
that supports coroutines.
Don't use MultiSocket in Overlay:
The MultiSocket is obsolete technology which is superceded by a more
straightforward, template based implementation that is compatible with
boost::asio::coroutines. This removes support for the unused PROXY handshake
feature.
Always detect ssl in HTTP server
Add new Handler interfaces
Persist HTTP peer io_service::work lifetime
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.
Tidy up includes
Split implementation into three headers
Use ssl_bundle in SSLPeer
Call HTTP Handler with legacy peer handshake
Use ssl_bundle in Overlay::Peer
Construct Overlay::Peer with ssl_bundle and legacy handshake
Pass legacy peer handshakes through Overlay
Add doors section in cfg