From ca787e93031f04b032d81a4727ec5f5330b67aa7 Mon Sep 17 00:00:00 2001 From: Eric Voskuil Date: Thu, 10 Sep 2026 15:39:52 -0400 Subject: [PATCH 1/2] Make channel_http request non-const. --- include/bitcoin/network/channels/channel_http.hpp | 4 ++-- include/bitcoin/network/messages/http_body.hpp | 7 +++++++ src/channels/channel_http.cpp | 4 ++-- 3 files changed, 11 insertions(+), 4 deletions(-) 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/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()); From 2be40385fcc11dcd73b9749c2425c49eb90ddcc3 Mon Sep 17 00:00:00 2001 From: Eric Voskuil Date: Thu, 10 Sep 2026 12:19:15 -0400 Subject: [PATCH 2/2] Restore WIN32_LEAN_AND_MEAN guard in wolfssl test.h. --- include/bitcoin/network/ssl/wolfssl/test.h | 4 ++++ 1 file changed, 4 insertions(+) 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 */