Eliminate a copy of the string returned by FastWriter
Add Json::to_string:
This allows the declaration for FastWriter to be hidden and makes
conversion of Json::Value objects to strings a little less clunky.
Add beast::asio::basic_streambuf (RIPD-661):
This is class whose interface is identical to the boost::asio::basic_streambuf,
and uses an implementation that stores the data in multiple discontiguous
linear buffers, expanding and shrinking as needed.
Use beast::asio::streambuf in Overlay
Separate beast::http::body from beast::http::message (RIPD-660):
This changes the http::message object to no longer contain a body. It modifies
the parser to store the body in a separate object, or to pass the body data
to a functor. This allows the body to be stored in more flexible ways. For
example, in HTTP responses the body can be generated procedurally instead
of being required to exist entirely in memory at once.
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.
Use _MSC_VER to detect Visual Studio
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