diff --git a/include/bitcoin/network/channels/channel_http.hpp b/include/bitcoin/network/channels/channel_http.hpp index 705439905..bd2468c25 100644 --- a/include/bitcoin/network/channels/channel_http.hpp +++ b/include/bitcoin/network/channels/channel_http.hpp @@ -116,14 +116,14 @@ class BCT_API channel_http virtual void set_authorized(const http::request& request) NOEXCEPT; /// Dispatch request to subscribers by verb type. - virtual void dispatch(const http::request_cptr& request) NOEXCEPT; + virtual void dispatch(const http::request_ptr& request) NOEXCEPT; /// Size and assign response_buffer_ if value type is json or json-rpc. virtual void assign_json_buffer(http::response& response) NOEXCEPT; /// Handlers. virtual void handle_receive(const code& ec, size_t bytes, - const http::request_cptr& request) NOEXCEPT; + const http::request_ptr& request) NOEXCEPT; virtual void handle_send(const code& ec, size_t bytes, bool notification, const std::string& message, const result_handler& handler) NOEXCEPT; diff --git a/include/bitcoin/network/messages/http_body.hpp b/include/bitcoin/network/messages/http_body.hpp index 7e9471a12..0ab4f34e0 100644 --- a/include/bitcoin/network/messages/http_body.hpp +++ b/include/bitcoin/network/messages/http_body.hpp @@ -155,6 +155,13 @@ struct BCT_API body return std::get(value()); } + template + inline Inner& get() NOEXCEPT + { + BC_ASSERT(contains()); + return std::get(inner_.value()); + } + private: std::optional inner_{}; }; diff --git a/include/bitcoin/network/ssl/wolfssl/test.h b/include/bitcoin/network/ssl/wolfssl/test.h index 97454e170..c4be58c9d 100644 --- a/include/bitcoin/network/ssl/wolfssl/test.h +++ b/include/bitcoin/network/ssl/wolfssl/test.h @@ -2213,7 +2213,11 @@ static WC_INLINE unsigned int my_psk_client_cs_cb(WOLFSSL* ssl, #elif defined(USE_WINDOWS_API) +/* LIBBITCOIN: fix warning when WIN32_LEAN_AND_MEAN is already defined. */ +#ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN +#endif + #define _WINSOCKAPI_ /* block inclusion of winsock.h header file */ #include #undef _WINSOCKAPI_ /* undefine it for MINGW winsock2.h header file */ diff --git a/src/channels/channel_http.cpp b/src/channels/channel_http.cpp index d73d95c75..34385659e 100644 --- a/src/channels/channel_http.cpp +++ b/src/channels/channel_http.cpp @@ -88,7 +88,7 @@ void channel_http::receive() NOEXCEPT } void channel_http::handle_receive(const code& ec, size_t bytes, - const http::request_cptr& request) NOEXCEPT + const http::request_ptr& request) NOEXCEPT { BC_ASSERT(stranded()); @@ -149,7 +149,7 @@ void channel_http::handle_receive(const code& ec, size_t bytes, } // Wrap the http request as a tagged verb request and dispatch by type. -void channel_http::dispatch(const request_cptr& request) NOEXCEPT +void channel_http::dispatch(const request_ptr& request) NOEXCEPT { BC_ASSERT(stranded());