[restbed] Update to 4.8 (#21475)

* Update restbed to 4.8

* Update CI baseline

* Tweaks

* Update CI baseline

Co-authored-by: chausner <chausner@users.noreply.github.com>
This commit is contained in:
chausner 2021-11-23 00:26:45 +01:00 committed by GitHub
parent 0c846c11aa
commit 0ca4348de3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 95 additions and 211 deletions

View File

@ -1,112 +0,0 @@
diff --git a/source/corvusoft/restbed/detail/http_impl.cpp b/source/corvusoft/restbed/detail/http_impl.cpp
index 77f918a..08d2c9c 100644
--- a/source/corvusoft/restbed/detail/http_impl.cpp
+++ b/source/corvusoft/restbed/detail/http_impl.cpp
@@ -153,7 +153,7 @@ namespace restbed
{
#endif
auto socket = make_shared< tcp::socket >( *request->m_pimpl->m_io_service );
- request->m_pimpl->m_socket = make_shared< SocketImpl >( socket );
+ request->m_pimpl->m_socket = make_shared< SocketImpl >( *request->m_pimpl->m_io_service, socket );
#ifdef BUILD_SSL
}
@@ -196,7 +196,7 @@ namespace restbed
}
socket->set_verify_callback( asio::ssl::rfc2818_verification( request->get_host( ) ) );
- request->m_pimpl->m_socket = make_shared< SocketImpl >( socket );
+ request->m_pimpl->m_socket = make_shared< SocketImpl >( *request->m_pimpl->m_io_service, socket );
}
#endif
void HttpImpl::request_handler( const error_code& error, const shared_ptr< Request >& request, const function< void ( const shared_ptr< Request >, const shared_ptr< Response > ) >& callback )
diff --git a/source/corvusoft/restbed/detail/service_impl.cpp b/source/corvusoft/restbed/detail/service_impl.cpp
index 6772af1..87be1ce 100644
--- a/source/corvusoft/restbed/detail/service_impl.cpp
+++ b/source/corvusoft/restbed/detail/service_impl.cpp
@@ -147,7 +147,7 @@ namespace restbed
void ServiceImpl::http_listen( void ) const
{
- auto socket = make_shared< tcp::socket >( m_acceptor->get_io_service( ) );
+ auto socket = make_shared< tcp::socket >( *m_io_service );
m_acceptor->async_accept( *socket, bind( &ServiceImpl::create_session, this, socket, _1 ) );
}
@@ -273,7 +273,7 @@ namespace restbed
void ServiceImpl::https_listen( void ) const
{
- auto socket = make_shared< asio::ssl::stream< tcp::socket > >( m_ssl_acceptor->get_io_service( ), *m_ssl_context );
+ auto socket = make_shared< asio::ssl::stream< tcp::socket > >( *m_io_service, *m_ssl_context );
m_ssl_acceptor->async_accept( socket->lowest_layer( ), bind( &ServiceImpl::create_ssl_session, this, socket, _1 ) );
}
@@ -289,7 +289,7 @@ namespace restbed
return;
}
- auto connection = make_shared< SocketImpl >( socket, m_logger );
+ auto connection = make_shared< SocketImpl >( *m_io_service, socket, m_logger );
connection->set_timeout( m_settings->get_connection_timeout( ) );
if (m_settings->get_keep_alive()) {
connection->set_keep_alive( m_settings->get_keep_alive_start(),
@@ -530,7 +530,7 @@ namespace restbed
{
if ( not error )
{
- auto connection = make_shared< SocketImpl >( socket, m_logger );
+ auto connection = make_shared< SocketImpl >( *m_io_service, socket, m_logger );
connection->set_timeout( m_settings->get_connection_timeout( ) );
if (m_settings->get_keep_alive()) {
connection->set_keep_alive( m_settings->get_keep_alive_start(),
diff --git a/source/corvusoft/restbed/detail/socket_impl.cpp b/source/corvusoft/restbed/detail/socket_impl.cpp
index fac0082..942eefa 100644
--- a/source/corvusoft/restbed/detail/socket_impl.cpp
+++ b/source/corvusoft/restbed/detail/socket_impl.cpp
@@ -49,12 +49,12 @@ namespace restbed
{
namespace detail
{
- SocketImpl::SocketImpl( const shared_ptr< tcp::socket >& socket, const shared_ptr< Logger >& logger ) : m_error_handler( nullptr ),
+ SocketImpl::SocketImpl( asio::io_context& context, const shared_ptr< tcp::socket >& socket, const shared_ptr< Logger >& logger ) : m_error_handler( nullptr ),
m_is_open( socket->is_open( ) ),
m_pending_writes( ),
m_logger( logger ),
m_timeout( 0 ),
- m_io_service( socket->get_io_service( ) ),
+ m_io_service( context ),
m_timer( make_shared< asio::steady_timer >( m_io_service ) ),
m_strand( make_shared< io_service::strand > ( m_io_service ) ),
m_resolver( nullptr ),
@@ -66,12 +66,12 @@ namespace restbed
return;
}
#ifdef BUILD_SSL
- SocketImpl::SocketImpl( const shared_ptr< asio::ssl::stream< tcp::socket > >& socket, const shared_ptr< Logger >& logger ) : m_error_handler( nullptr ),
+ SocketImpl::SocketImpl( asio::io_context& context, const shared_ptr< asio::ssl::stream< tcp::socket > >& socket, const shared_ptr< Logger >& logger ) : m_error_handler( nullptr ),
m_is_open( socket->lowest_layer( ).is_open( ) ),
m_pending_writes( ),
m_logger( logger ),
m_timeout( 0 ),
- m_io_service( socket->get_io_service( ) ),
+ m_io_service( context ),
m_timer( make_shared< asio::steady_timer >( m_io_service ) ),
m_strand( make_shared< io_service::strand > ( m_io_service ) ),
m_resolver( nullptr ),
diff --git a/source/corvusoft/restbed/detail/socket_impl.hpp b/source/corvusoft/restbed/detail/socket_impl.hpp
index 41aec42..0977eba 100644
--- a/source/corvusoft/restbed/detail/socket_impl.hpp
+++ b/source/corvusoft/restbed/detail/socket_impl.hpp
@@ -53,9 +53,9 @@ namespace restbed
//Definitions
//Constructors
- SocketImpl( const std::shared_ptr< asio::ip::tcp::socket >& socket, const std::shared_ptr< Logger >& logger = nullptr );
+ SocketImpl( asio::io_context& context, const std::shared_ptr< asio::ip::tcp::socket >& socket, const std::shared_ptr< Logger >& logger = nullptr );
#ifdef BUILD_SSL
- SocketImpl( const std::shared_ptr< asio::ssl::stream< asio::ip::tcp::socket > >& socket, const std::shared_ptr< Logger >& logger = nullptr );
+ SocketImpl( asio::io_context& context, const std::shared_ptr< asio::ssl::stream< asio::ip::tcp::socket > >& socket, const std::shared_ptr< Logger >& logger = nullptr );
#endif
~SocketImpl( void ) = default;

View File

@ -0,0 +1,63 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -57,7 +57,11 @@ find_package( asio REQUIRED )
if ( BUILD_SSL )
add_definitions( "-DBUILD_SSL" )
- find_package( openssl REQUIRED )
+ find_package( OpenSSL REQUIRED )
+ set( ssl_LIBRARY_SHARED OpenSSL::SSL )
+ set( crypto_LIBRARY_SHARED OpenSSL::Crypto )
+ set( ssl_LIBRARY_STATIC OpenSSL::SSL )
+ set( crypto_LIBRARY_STATIC OpenSSL::Crypto )
endif ( )
include_directories( ${INCLUDE_DIR} SYSTEM ${asio_INCLUDE} ${ssl_INCLUDE} )
@@ -76,12 +76,13 @@ endif ( )
#
file( GLOB_RECURSE MANIFEST "${SOURCE_DIR}/*.cpp" )
+if ( NOT BUILD_SHARED_LIBS )
set( STATIC_LIBRARY_NAME "${PROJECT_NAME}-static" )
add_library( ${STATIC_LIBRARY_NAME} STATIC ${MANIFEST} )
set_property( TARGET ${STATIC_LIBRARY_NAME} PROPERTY CXX_STANDARD 14 )
set_property( TARGET ${STATIC_LIBRARY_NAME} PROPERTY CXX_STANDARD_REQUIRED ON )
set_target_properties( ${STATIC_LIBRARY_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME} )
-
+else ( )
set( SHARED_LIBRARY_NAME "${PROJECT_NAME}-shared" )
add_library( ${SHARED_LIBRARY_NAME} SHARED ${MANIFEST} )
set_property( TARGET ${SHARED_LIBRARY_NAME} PROPERTY CXX_STANDARD 14 )
@@ -93,13 +94,20 @@ else ( )
set_target_properties( ${SHARED_LIBRARY_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME} )
endif ( )
set_target_properties( ${SHARED_LIBRARY_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR} VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} )
+endif ( )
if ( BUILD_SSL )
+if ( BUILD_SHARED_LIBS )
target_link_libraries( ${SHARED_LIBRARY_NAME} LINK_PRIVATE ${ssl_LIBRARY_SHARED} ${crypto_LIBRARY_SHARED} )
+else ( )
target_link_libraries( ${STATIC_LIBRARY_NAME} LINK_PRIVATE ${ssl_LIBRARY_STATIC} ${crypto_LIBRARY_STATIC} ${CMAKE_DL_LIBS} )
+endif ( )
else ( )
+if ( BUILD_SHARED_LIBS )
target_link_libraries( ${SHARED_LIBRARY_NAME} )
+else ( )
target_link_libraries( ${STATIC_LIBRARY_NAME} ${CMAKE_DL_LIBS} )
+endif ( )
endif ( )
if ( BUILD_TESTS )
@@ -119,5 +127,8 @@ file( GLOB ARTIFACTS "${SOURCE_DIR}/*.hpp" )
install( FILES "${INCLUDE_DIR}/${PROJECT_NAME}" DESTINATION "${CMAKE_INSTALL_PREFIX}/include" )
install( FILES ${ARTIFACTS} DESTINATION "${CMAKE_INSTALL_PREFIX}/include/corvusoft/${PROJECT_NAME}" )
+if ( NOT BUILD_SHARED_LIBS )
-install( TARGETS ${STATIC_LIBRARY_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library )
+install( TARGETS ${STATIC_LIBRARY_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library )
+else ( )
-install( TARGETS ${SHARED_LIBRARY_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library )
+install( TARGETS ${SHARED_LIBRARY_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library )
+endif ( )

View File

@ -1,67 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2fb74b3..602e05d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -64,26 +64,33 @@ include_directories( ${INCLUDE_DIR} SYSTEM ${asio_INCLUDE} ${ssl_INCLUDE} )
# Build
#
file( GLOB_RECURSE MANIFEST "${SOURCE_DIR}/*.cpp" )
-
-set( STATIC_LIBRARY_NAME "${PROJECT_NAME}-static" )
-add_library( ${STATIC_LIBRARY_NAME} STATIC ${MANIFEST} )
-set_property( TARGET ${STATIC_LIBRARY_NAME} PROPERTY CXX_STANDARD 14 )
-set_property( TARGET ${STATIC_LIBRARY_NAME} PROPERTY CXX_STANDARD_REQUIRED ON )
-set_target_properties( ${STATIC_LIBRARY_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME} )
-
-set( SHARED_LIBRARY_NAME "${PROJECT_NAME}-shared" )
-add_library( ${SHARED_LIBRARY_NAME} SHARED ${MANIFEST} )
-set_property( TARGET ${SHARED_LIBRARY_NAME} PROPERTY CXX_STANDARD 14 )
-set_property( TARGET ${SHARED_LIBRARY_NAME} PROPERTY CXX_STANDARD_REQUIRED ON )
-set_target_properties( ${SHARED_LIBRARY_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME} )
-set_target_properties( ${SHARED_LIBRARY_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR} VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} )
+if(NOT BUILD_SHARED_LIBS)
+ set( STATIC_LIBRARY_NAME "${PROJECT_NAME}-static" )
+ add_library( ${STATIC_LIBRARY_NAME} STATIC ${MANIFEST} )
+ set_property( TARGET ${STATIC_LIBRARY_NAME} PROPERTY CXX_STANDARD 14 )
+ set_property( TARGET ${STATIC_LIBRARY_NAME} PROPERTY CXX_STANDARD_REQUIRED ON )
+ set_target_properties( ${STATIC_LIBRARY_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME} )
+else()
+ set( SHARED_LIBRARY_NAME "${PROJECT_NAME}-shared" )
+ add_library( ${SHARED_LIBRARY_NAME} SHARED ${MANIFEST} )
+ set_property( TARGET ${SHARED_LIBRARY_NAME} PROPERTY CXX_STANDARD 14 )
+ set_property( TARGET ${SHARED_LIBRARY_NAME} PROPERTY CXX_STANDARD_REQUIRED ON )
+ set_target_properties( ${SHARED_LIBRARY_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME} )
+ set_target_properties( ${SHARED_LIBRARY_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR} VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} )
+endif()
if ( BUILD_SSL )
- target_link_libraries( ${SHARED_LIBRARY_NAME} LINK_PRIVATE ${ssl_LIBRARY_SHARED} ${crypto_LIBRARY_SHARED} )
- target_link_libraries( ${STATIC_LIBRARY_NAME} LINK_PRIVATE ${ssl_LIBRARY_STATIC} ${crypto_LIBRARY_STATIC} ${CMAKE_DL_LIBS} )
+ if(BUILD_SHARED_LIBS)
+ target_link_libraries( ${SHARED_LIBRARY_NAME} LINK_PRIVATE ${ssl_LIBRARY_SHARED} ${crypto_LIBRARY_SHARED} )
+ else()
+ target_link_libraries( ${STATIC_LIBRARY_NAME} LINK_PRIVATE ${ssl_LIBRARY_STATIC} ${crypto_LIBRARY_STATIC} ${CMAKE_DL_LIBS} )
+ endif()
else ( )
- target_link_libraries( ${SHARED_LIBRARY_NAME} )
- target_link_libraries( ${STATIC_LIBRARY_NAME} ${CMAKE_DL_LIBS} )
+ if(BUILD_SHARED_LIBS)
+ target_link_libraries( ${SHARED_LIBRARY_NAME} )
+ else()
+ target_link_libraries( ${STATIC_LIBRARY_NAME} ${CMAKE_DL_LIBS} )
+ endif()
endif ( )
if ( BUILD_TESTS )
@@ -103,5 +110,8 @@ file( GLOB ARTIFACTS "${SOURCE_DIR}/*.hpp" )
install( FILES "${INCLUDE_DIR}/${PROJECT_NAME}" DESTINATION "${CMAKE_INSTALL_PREFIX}/include" )
install( FILES ${ARTIFACTS} DESTINATION "${CMAKE_INSTALL_PREFIX}/include/corvusoft/${PROJECT_NAME}" )
-install( TARGETS ${STATIC_LIBRARY_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library )
-install( TARGETS ${SHARED_LIBRARY_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library )
+if(NOT BUILD_SHARED_LIBS)
+ install( TARGETS ${STATIC_LIBRARY_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library )
+else()
+ install( TARGETS ${SHARED_LIBRARY_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library )
+endif()
\ No newline at end of file

View File

@ -1,35 +1,32 @@
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
openssl BUILD_SSL
FEATURES
openssl BUILD_SSL
)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Corvusoft/restbed
REF 4.7
SHA512 f8aaa89ae5c862253f9a480fefa8827927e3a6c13c51938bbcd6c28ac4e6d54496ecf51610343e9a3efe3e969314f643a487506c606a65f56125b51ab8478652
REF 4.8
SHA512 989027c926b97a9dd02951c881dc41819014783da4848cc9ee50776545ba206830d35c2e775abd8c0f705f7b0611d5cd335dd1eb305cdcbf2c86100abaf1623c
HEAD_REF master
PATCHES
use-FindOpenSSL-cmake.patch
asio-1-18-0-deprecations.patch #https://github.com/Corvusoft/restbed/pull/444/files
fix-ninja-duplicates.patch
fix-cmake.patch
)
file(REMOVE ${SOURCE_PATH}/cmake/Findopenssl.cmake)
file(REMOVE "${SOURCE_PATH}/cmake/Findopenssl.cmake")
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
${FEATURE_OPTIONS}
-DBUILD_TESTS=OFF
)
vcpkg_install_cmake()
vcpkg_cmake_install()
vcpkg_copy_pdbs()
#Remove include debug files
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
# Remove include debug files
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
# Handle copyright
configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)
configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY)

View File

@ -1,13 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1ec4f07..2fb74b3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -55,7 +55,7 @@ set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake" )
find_package( asio REQUIRED )
if ( BUILD_SSL )
- find_package( openssl REQUIRED )
+ find_package( OpenSSL REQUIRED )
endif ( )
include_directories( ${INCLUDE_DIR} SYSTEM ${asio_INCLUDE} ${ssl_INCLUDE} )

View File

@ -1,14 +1,25 @@
{
"name": "restbed",
"version-string": "4.7",
"version": "4.8",
"description": "Corvusoft's Restbed framework brings asynchronous RESTful functionality to C++14 applications.",
"homepage": "https://github.com/corvusoft/restbed",
"dependencies": [
"asio"
"asio",
{
"name": "vcpkg-cmake",
"host": true
}
],
"features": {
"openssl": {
"description": "Secure over the wire communication allowing you to transmit private data online.",
"dependencies": [
{
"name": "asio",
"features": [
"openssl"
]
},
"openssl"
]
}

View File

@ -5949,7 +5949,7 @@
"port-version": 2
},
"restbed": {
"baseline": "4.7",
"baseline": "4.8",
"port-version": 0
},
"restc-cpp": {

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "3b134a281ce09ee7258a281808cca0e40ff2f7d1",
"version": "4.8",
"port-version": 0
},
{
"git-tree": "deab0777d5581a96752beb7528254f02380daf46",
"version-string": "4.7",