From 9143c9d991783ff037bcd926d8105104520bb5d9 Mon Sep 17 00:00:00 2001 From: Joerg-Christian Boehme Date: Tue, 8 Aug 2023 23:34:45 +0200 Subject: [PATCH 1/3] Extend session --- lib/allocator.h | 4 ++-- lib/asio_client_request.cc | 4 ++-- lib/asio_client_request_impl.cc | 4 ++-- lib/asio_client_request_impl.h | 2 +- lib/asio_client_response.cc | 4 ++-- lib/asio_client_response_impl.cc | 2 +- lib/asio_client_response_impl.h | 2 +- lib/asio_client_session.cc | 13 +++++++++++-- lib/asio_client_session_impl.cc | 4 ++-- lib/asio_client_session_tcp_impl.h | 2 +- lib/asio_client_session_tls_impl.h | 2 +- lib/asio_client_stream.cc | 2 +- lib/asio_client_stream.h | 2 +- lib/asio_client_tls_context.h | 2 +- lib/asio_common.cc | 2 +- lib/asio_common.h | 2 +- lib/asio_io_service_pool.h | 2 +- lib/asio_server.h | 2 +- lib/asio_server_connection.h | 4 ++-- lib/asio_server_http2.cc | 4 ++-- lib/asio_server_http2_handler.cc | 2 +- lib/asio_server_http2_handler.h | 2 +- lib/asio_server_http2_impl.cc | 2 +- lib/asio_server_http2_impl.h | 2 +- lib/asio_server_request.cc | 4 ++-- lib/asio_server_request_handler.h | 2 +- lib/asio_server_request_impl.h | 2 +- lib/asio_server_response.cc | 4 ++-- lib/asio_server_response_impl.h | 2 +- lib/asio_server_serve_mux.h | 2 +- lib/asio_server_stream.h | 2 +- lib/asio_server_tls_context.h | 2 +- lib/http2.h | 4 ++-- .../nghttp2}/asio_client_session_impl.h | 4 ++-- lib/includes/nghttp2/asio_http2_client.h | 4 ++++ lib/{ => includes/nghttp2}/nghttp2_config.h | 0 lib/{ => includes/nghttp2}/template.h | 2 +- lib/tls.h | 2 +- lib/util.h | 4 ++-- 39 files changed, 63 insertions(+), 50 deletions(-) rename lib/{ => includes/nghttp2}/asio_client_session_impl.h (98%) rename lib/{ => includes/nghttp2}/nghttp2_config.h (100%) rename lib/{ => includes/nghttp2}/template.h (99%) diff --git a/lib/allocator.h b/lib/allocator.h index 97b9a41..400b0e0 100644 --- a/lib/allocator.h +++ b/lib/allocator.h @@ -25,7 +25,7 @@ #ifndef ALLOCATOR_H #define ALLOCATOR_H -#include "nghttp2_config.h" +#include #ifndef _WIN32 # include @@ -34,7 +34,7 @@ #include #include -#include "template.h" +#include namespace nghttp2 { diff --git a/lib/asio_client_request.cc b/lib/asio_client_request.cc index a81e213..64a5246 100644 --- a/lib/asio_client_request.cc +++ b/lib/asio_client_request.cc @@ -22,13 +22,13 @@ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#include "nghttp2_config.h" +#include #include #include "asio_client_request_impl.h" -#include "template.h" +#include namespace nghttp2 { namespace asio_http2 { diff --git a/lib/asio_client_request_impl.cc b/lib/asio_client_request_impl.cc index 1e4e2dd..55d7534 100644 --- a/lib/asio_client_request_impl.cc +++ b/lib/asio_client_request_impl.cc @@ -25,8 +25,8 @@ #include "asio_client_request_impl.h" #include "asio_client_stream.h" -#include "asio_client_session_impl.h" -#include "template.h" +#include +#include namespace nghttp2 { namespace asio_http2 { diff --git a/lib/asio_client_request_impl.h b/lib/asio_client_request_impl.h index e0d43d2..1c0b79f 100644 --- a/lib/asio_client_request_impl.h +++ b/lib/asio_client_request_impl.h @@ -25,7 +25,7 @@ #ifndef ASIO_CLIENT_REQUEST_IMPL_H #define ASIO_CLIENT_REQUEST_IMPL_H -#include "nghttp2_config.h" +#include #include diff --git a/lib/asio_client_response.cc b/lib/asio_client_response.cc index 56b8072..a3413f3 100644 --- a/lib/asio_client_response.cc +++ b/lib/asio_client_response.cc @@ -22,13 +22,13 @@ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#include "nghttp2_config.h" +#include #include #include "asio_client_response_impl.h" -#include "template.h" +#include namespace nghttp2 { namespace asio_http2 { diff --git a/lib/asio_client_response_impl.cc b/lib/asio_client_response_impl.cc index bd2cdf5..4f02cfa 100644 --- a/lib/asio_client_response_impl.cc +++ b/lib/asio_client_response_impl.cc @@ -24,7 +24,7 @@ */ #include "asio_client_response_impl.h" -#include "template.h" +#include namespace nghttp2 { namespace asio_http2 { diff --git a/lib/asio_client_response_impl.h b/lib/asio_client_response_impl.h index 524d728..837964f 100644 --- a/lib/asio_client_response_impl.h +++ b/lib/asio_client_response_impl.h @@ -25,7 +25,7 @@ #ifndef ASIO_CLIENT_RESPONSE_IMPL_H #define ASIO_CLIENT_RESPONSE_IMPL_H -#include "nghttp2_config.h" +#include #include diff --git a/lib/asio_client_session.cc b/lib/asio_client_session.cc index 5cf01c7..c3cbe72 100644 --- a/lib/asio_client_session.cc +++ b/lib/asio_client_session.cc @@ -22,14 +22,14 @@ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#include "nghttp2_config.h" +#include #include #include "asio_client_session_tcp_impl.h" #include "asio_client_session_tls_impl.h" #include "asio_common.h" -#include "template.h" +#include namespace nghttp2 { namespace asio_http2 { @@ -87,6 +87,15 @@ session::session(boost::asio::io_service &io_service, impl_->start_resolve(host, service); } +session::session(std::shared_ptr impl, + const std::string &host, + const std::string &service) + : impl_{impl} +{ + impl_->start_resolve(host, service); +} + + session::~session() {} session::session(session &&other) noexcept : impl_(std::move(other.impl_)) {} diff --git a/lib/asio_client_session_impl.cc b/lib/asio_client_session_impl.cc index b96824d..375c073 100644 --- a/lib/asio_client_session_impl.cc +++ b/lib/asio_client_session_impl.cc @@ -22,7 +22,7 @@ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#include "asio_client_session_impl.h" +#include "nghttp2/asio_client_session_impl.h" #include @@ -30,7 +30,7 @@ #include "asio_client_request_impl.h" #include "asio_client_response_impl.h" #include "asio_common.h" -#include "template.h" +#include #include "util.h" #include "http2.h" diff --git a/lib/asio_client_session_tcp_impl.h b/lib/asio_client_session_tcp_impl.h index 0b6ae93..d2c70cf 100644 --- a/lib/asio_client_session_tcp_impl.h +++ b/lib/asio_client_session_tcp_impl.h @@ -25,7 +25,7 @@ #ifndef ASIO_CLIENT_SESSION_TCP_IMPL_H #define ASIO_CLIENT_SESSION_TCP_IMPL_H -#include "asio_client_session_impl.h" +#include #include diff --git a/lib/asio_client_session_tls_impl.h b/lib/asio_client_session_tls_impl.h index 645c60f..5d04d0d 100644 --- a/lib/asio_client_session_tls_impl.h +++ b/lib/asio_client_session_tls_impl.h @@ -25,7 +25,7 @@ #ifndef ASIO_CLIENT_SESSION_TLS_IMPL_H #define ASIO_CLIENT_SESSION_TLS_IMPL_H -#include "asio_client_session_impl.h" +#include #include diff --git a/lib/asio_client_stream.cc b/lib/asio_client_stream.cc index 2d3aa5b..b519040 100644 --- a/lib/asio_client_stream.cc +++ b/lib/asio_client_stream.cc @@ -26,7 +26,7 @@ #include "asio_client_request_impl.h" #include "asio_client_response_impl.h" -#include "asio_client_session_impl.h" +#include namespace nghttp2 { namespace asio_http2 { diff --git a/lib/asio_client_stream.h b/lib/asio_client_stream.h index e3e027a..a27333b 100644 --- a/lib/asio_client_stream.h +++ b/lib/asio_client_stream.h @@ -25,7 +25,7 @@ #ifndef ASIO_CLIENT_STREAM_H #define ASIO_CLIENT_STREAM_H -#include "nghttp2_config.h" +#include #include diff --git a/lib/asio_client_tls_context.h b/lib/asio_client_tls_context.h index 6287dab..677ed45 100644 --- a/lib/asio_client_tls_context.h +++ b/lib/asio_client_tls_context.h @@ -25,7 +25,7 @@ #ifndef ASIO_CLIENT_TLS_CONTEXT_H #define ASIO_CLIENT_TLS_CONTEXT_H -#include "nghttp2_config.h" +#include #include diff --git a/lib/asio_common.cc b/lib/asio_common.cc index 428dbd6..4d1de3b 100644 --- a/lib/asio_common.cc +++ b/lib/asio_common.cc @@ -28,7 +28,7 @@ #include #include "util.h" -#include "template.h" +#include #include "http2.h" namespace nghttp2 { diff --git a/lib/asio_common.h b/lib/asio_common.h index 7eacfa5..70fceae 100644 --- a/lib/asio_common.h +++ b/lib/asio_common.h @@ -25,7 +25,7 @@ #ifndef ASIO_COMMON_H #define ASIO_COMMON_H -#include "nghttp2_config.h" +#include #include diff --git a/lib/asio_io_service_pool.h b/lib/asio_io_service_pool.h index 9c11533..6bee72a 100644 --- a/lib/asio_io_service_pool.h +++ b/lib/asio_io_service_pool.h @@ -37,7 +37,7 @@ #ifndef ASIO_IO_SERVICE_POOL_H #define ASIO_IO_SERVICE_POOL_H -#include "nghttp2_config.h" +#include #include #include diff --git a/lib/asio_server.h b/lib/asio_server.h index 1190e32..9c1c0a4 100644 --- a/lib/asio_server.h +++ b/lib/asio_server.h @@ -37,7 +37,7 @@ #ifndef ASIO_SERVER_H #define ASIO_SERVER_H -#include "nghttp2_config.h" +#include #include #include diff --git a/lib/asio_server_connection.h b/lib/asio_server_connection.h index a948965..b402ca2 100644 --- a/lib/asio_server_connection.h +++ b/lib/asio_server_connection.h @@ -37,7 +37,7 @@ #ifndef ASIO_SERVER_CONNECTION_H #define ASIO_SERVER_CONNECTION_H -#include "nghttp2_config.h" +#include #include @@ -49,7 +49,7 @@ #include "asio_server_http2_handler.h" #include "asio_server_serve_mux.h" #include "util.h" -#include "template.h" +#include #if BOOST_VERSION >= 107000 # define GET_IO_SERVICE(s) \ diff --git a/lib/asio_server_http2.cc b/lib/asio_server_http2.cc index 02d3d19..69d6adf 100644 --- a/lib/asio_server_http2.cc +++ b/lib/asio_server_http2.cc @@ -22,13 +22,13 @@ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#include "nghttp2_config.h" +#include #include #include "asio_server_http2_impl.h" #include "asio_server.h" -#include "template.h" +#include namespace nghttp2 { diff --git a/lib/asio_server_http2_handler.cc b/lib/asio_server_http2_handler.cc index c1fc195..d75c8db 100644 --- a/lib/asio_server_http2_handler.cc +++ b/lib/asio_server_http2_handler.cc @@ -33,7 +33,7 @@ #include "asio_server_response_impl.h" #include "http2.h" #include "util.h" -#include "template.h" +#include namespace nghttp2 { diff --git a/lib/asio_server_http2_handler.h b/lib/asio_server_http2_handler.h index 1206449..93ac5d8 100644 --- a/lib/asio_server_http2_handler.h +++ b/lib/asio_server_http2_handler.h @@ -25,7 +25,7 @@ #ifndef ASIO_SERVER_HTTP2_HANDLER_H #define ASIO_SERVER_HTTP2_HANDLER_H -#include "nghttp2_config.h" +#include #include #include diff --git a/lib/asio_server_http2_impl.cc b/lib/asio_server_http2_impl.cc index 00afdd6..981bc00 100644 --- a/lib/asio_server_http2_impl.cc +++ b/lib/asio_server_http2_impl.cc @@ -29,7 +29,7 @@ #include "asio_server.h" #include "util.h" #include "tls.h" -#include "template.h" +#include namespace nghttp2 { diff --git a/lib/asio_server_http2_impl.h b/lib/asio_server_http2_impl.h index 93a6d2c..519ad8d 100644 --- a/lib/asio_server_http2_impl.h +++ b/lib/asio_server_http2_impl.h @@ -25,7 +25,7 @@ #ifndef ASIO_SERVER_HTTP2_IMPL_H #define ASIO_SERVER_HTTP2_IMPL_H -#include "nghttp2_config.h" +#include #include diff --git a/lib/asio_server_request.cc b/lib/asio_server_request.cc index 36669a5..8b7db60 100644 --- a/lib/asio_server_request.cc +++ b/lib/asio_server_request.cc @@ -22,13 +22,13 @@ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#include "nghttp2_config.h" +#include #include #include "asio_server_request_impl.h" -#include "template.h" +#include namespace nghttp2 { namespace asio_http2 { diff --git a/lib/asio_server_request_handler.h b/lib/asio_server_request_handler.h index 5eefcfd..e57ccfd 100644 --- a/lib/asio_server_request_handler.h +++ b/lib/asio_server_request_handler.h @@ -25,7 +25,7 @@ #ifndef ASIO_SERVER_REQUEST_HANDLER_H #define ASIO_SERVER_REQUEST_HANDLER_H -#include "nghttp2_config.h" +#include #include diff --git a/lib/asio_server_request_impl.h b/lib/asio_server_request_impl.h index 05de98a..5f83d1a 100644 --- a/lib/asio_server_request_impl.h +++ b/lib/asio_server_request_impl.h @@ -25,7 +25,7 @@ #ifndef ASIO_SERVER_REQUEST_IMPL_H #define ASIO_SERVER_REQUEST_IMPL_H -#include "nghttp2_config.h" +#include #include #include diff --git a/lib/asio_server_response.cc b/lib/asio_server_response.cc index f67921a..c80769e 100644 --- a/lib/asio_server_response.cc +++ b/lib/asio_server_response.cc @@ -22,13 +22,13 @@ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#include "nghttp2_config.h" +#include #include #include "asio_server_response_impl.h" -#include "template.h" +#include namespace nghttp2 { namespace asio_http2 { diff --git a/lib/asio_server_response_impl.h b/lib/asio_server_response_impl.h index 41df7a6..02d8f0e 100644 --- a/lib/asio_server_response_impl.h +++ b/lib/asio_server_response_impl.h @@ -25,7 +25,7 @@ #ifndef ASIO_SERVER_RESPONSE_IMPL_H #define ASIO_SERVER_RESPONSE_IMPL_H -#include "nghttp2_config.h" +#include #include diff --git a/lib/asio_server_serve_mux.h b/lib/asio_server_serve_mux.h index 017a6bc..73b33bf 100644 --- a/lib/asio_server_serve_mux.h +++ b/lib/asio_server_serve_mux.h @@ -25,7 +25,7 @@ #ifndef ASIO_SERVER_SERVE_MUX_H #define ASIO_SERVER_SERVE_MUX_H -#include "nghttp2_config.h" +#include #include diff --git a/lib/asio_server_stream.h b/lib/asio_server_stream.h index cd7e081..5014f28 100644 --- a/lib/asio_server_stream.h +++ b/lib/asio_server_stream.h @@ -25,7 +25,7 @@ #ifndef ASIO_SERVER_STREAM_H #define ASIO_SERVER_STREAM_H -#include "nghttp2_config.h" +#include #include diff --git a/lib/asio_server_tls_context.h b/lib/asio_server_tls_context.h index 0f9b563..f3b8842 100644 --- a/lib/asio_server_tls_context.h +++ b/lib/asio_server_tls_context.h @@ -25,7 +25,7 @@ #ifndef ASIO_SERVER_TLS_CONTEXT_H #define ASIO_SERVER_TLS_CONTEXT_H -#include "nghttp2_config.h" +#include #include diff --git a/lib/http2.h b/lib/http2.h index 4f0ca5a..a41c0c7 100644 --- a/lib/http2.h +++ b/lib/http2.h @@ -25,7 +25,7 @@ #ifndef HTTP2_H #define HTTP2_H -#include "nghttp2_config.h" +#include #include #include @@ -38,7 +38,7 @@ #include "url-parser/url_parser.h" #include "util.h" -#include "template.h" +#include #include "allocator.h" namespace nghttp2 { diff --git a/lib/asio_client_session_impl.h b/lib/includes/nghttp2/asio_client_session_impl.h similarity index 98% rename from lib/asio_client_session_impl.h rename to lib/includes/nghttp2/asio_client_session_impl.h index 694ac20..bddaf81 100644 --- a/lib/asio_client_session_impl.h +++ b/lib/includes/nghttp2/asio_client_session_impl.h @@ -25,13 +25,13 @@ #ifndef ASIO_CLIENT_SESSION_IMPL_H #define ASIO_CLIENT_SESSION_IMPL_H -#include "nghttp2_config.h" +#include #include #include -#include "template.h" +#include namespace nghttp2 { namespace asio_http2 { diff --git a/lib/includes/nghttp2/asio_http2_client.h b/lib/includes/nghttp2/asio_http2_client.h index 7257914..432ba71 100644 --- a/lib/includes/nghttp2/asio_http2_client.h +++ b/lib/includes/nghttp2/asio_http2_client.h @@ -183,6 +183,10 @@ class session { const std::string &service, const boost::posix_time::time_duration &connect_timeout); + session(std::shared_ptr impl, + const std::string &host, + const std::string &service); + ~session(); session(session &&other) noexcept; diff --git a/lib/nghttp2_config.h b/lib/includes/nghttp2/nghttp2_config.h similarity index 100% rename from lib/nghttp2_config.h rename to lib/includes/nghttp2/nghttp2_config.h diff --git a/lib/template.h b/lib/includes/nghttp2/template.h similarity index 99% rename from lib/template.h rename to lib/includes/nghttp2/template.h index 50ed582..6b8ea3e 100644 --- a/lib/template.h +++ b/lib/includes/nghttp2/template.h @@ -25,7 +25,7 @@ #ifndef TEMPLATE_H #define TEMPLATE_H -#include "nghttp2_config.h" +#include #include #include diff --git a/lib/tls.h b/lib/tls.h index 8b18d32..6db9996 100644 --- a/lib/tls.h +++ b/lib/tls.h @@ -25,7 +25,7 @@ #ifndef TLS_H #define TLS_H -#include "nghttp2_config.h" +#include namespace nghttp2 { diff --git a/lib/util.h b/lib/util.h index d980e7a..3e9f757 100644 --- a/lib/util.h +++ b/lib/util.h @@ -25,7 +25,7 @@ #ifndef UTIL_H #define UTIL_H -#include "nghttp2_config.h" +#include #ifdef HAVE_UNISTD_H # include @@ -49,7 +49,7 @@ #include "url-parser/url_parser.h" -#include "template.h" +#include #include "network.h" #include "allocator.h" From b2d2789dd0b06f5c8506af355cd4afbf4ec07f60 Mon Sep 17 00:00:00 2001 From: Joerg-Christian Boehme Date: Sat, 12 Aug 2023 00:16:04 +0200 Subject: [PATCH 2/3] Fix cmake install missing headers --- lib/includes/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/includes/CMakeLists.txt b/lib/includes/CMakeLists.txt index b4720c6..9e00d12 100644 --- a/lib/includes/CMakeLists.txt +++ b/lib/includes/CMakeLists.txt @@ -2,4 +2,7 @@ install(FILES nghttp2/asio_http2.h nghttp2/asio_http2_client.h nghttp2/asio_http2_server.h + nghttp2/asio_client_session_impl.h + nghttp2/nghttp2_config.h + nghttp2/template.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/nghttp2") From 2f54b214648762224d8dac624405c98c6e702e83 Mon Sep 17 00:00:00 2001 From: Joerg-Christian Boehme Date: Sat, 12 Aug 2023 00:16:25 +0200 Subject: [PATCH 3/3] Only inject session_impl --- lib/asio_client_session.cc | 5 +---- lib/includes/nghttp2/asio_http2_client.h | 4 +--- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/lib/asio_client_session.cc b/lib/asio_client_session.cc index c3cbe72..796c1ae 100644 --- a/lib/asio_client_session.cc +++ b/lib/asio_client_session.cc @@ -87,12 +87,9 @@ session::session(boost::asio::io_service &io_service, impl_->start_resolve(host, service); } -session::session(std::shared_ptr impl, - const std::string &host, - const std::string &service) +session::session(std::shared_ptr impl) : impl_{impl} { - impl_->start_resolve(host, service); } diff --git a/lib/includes/nghttp2/asio_http2_client.h b/lib/includes/nghttp2/asio_http2_client.h index 432ba71..0179d19 100644 --- a/lib/includes/nghttp2/asio_http2_client.h +++ b/lib/includes/nghttp2/asio_http2_client.h @@ -183,9 +183,7 @@ class session { const std::string &service, const boost::posix_time::time_duration &connect_timeout); - session(std::shared_ptr impl, - const std::string &host, - const std::string &service); + session(std::shared_ptr impl); ~session();