net/pichi: Fix building failures based of Boost/1.80.0

PR:	266483
This commit is contained in:
Pichi 2022-09-19 09:37:19 -07:00 committed by Neel Chauhan
parent 163bb5b576
commit 5b44e5d587
2 changed files with 146 additions and 0 deletions

View File

@ -0,0 +1,79 @@
--- include/pichi/common/config.hpp.in.orig
+++ include/pichi/common/config.hpp.in
@@ -15,48 +15,39 @@
#cmakedefine HAS_SETSID
#cmakedefine HAS_CLOSE
-#cmakedefine NO_IGNORED_ATTRIBUTES_FOR_SODIUM
-#cmakedefine DEPRECATED_RFC2818_CLASS
+#ifdef __GNUC__
-#cmakedefine DISABLE_SHORTEN_64_TO_32_WARNING
-#if defined(DISABLE_SHORTEN_64_TO_32_WARNING) && defined(__clang__)
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wshorten-64-to-32"
-#include <boost/asio/basic_socket.hpp>
-#include <boost/asio/ssl/impl/context.ipp>
-#include <boost/beast/zlib/detail/deflate_stream.ipp>
-#pragma clang diagnostic pop
-#endif // DISABLE_SHORTEN_64_TO_32_WARNING && __clang__
+#if __GNUC__ >= 8
+#pragma GCC diagnostic ignored "-Wclass-memaccess"
+#endif // __GNUC__ >= 8
-#ifdef _MSC_VER
-#pragma warning(push)
-#pragma warning(disable : 4702)
-#include <boost/beast/http/fields.hpp>
-#pragma warning(pop)
-#endif // _MSC_VER
+#cmakedefine DISABLE_GCC_IGNORED_ATTRIBUTES
+#ifdef DISABLE_GCC_IGNORED_ATTRIBUTES
+#pragma GCC diagnostic ignored "-Wignored-attributes"
+#endif // DISABLE_GCC_IGNORED_ATTRIBUTES
-#cmakedefine HAS_SP_COUNTED_BASE_CLANG_HPP
-#if defined(HAS_SP_COUNTED_BASE_CLANG_HPP) && defined(__clang__)
-#if !__has_feature(c_atomic)
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wc11-extensions"
-#include <boost/smart_ptr/detail/sp_counted_base_clang.hpp>
-#pragma clang diagnostic pop
-#endif // !__has_feature(c_atomic)
-#endif // HAS_SP_COUNTED_BASE_CLANG_HPP && __clang__
+#endif // __GNUC__
-#cmakedefine DEPRECATED_ALLOCATOR_VOID
-#if defined(DEPRECATED_ALLOCATOR_VOID) && defined(__clang__)
-#pragma clang diagnostic push
+#ifdef __clang__
+
+#if (defined(__APPLE__) && __clang_major__ >= 12) || __clang_major__ >= 11
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-#include <boost/asio/associated_allocator.hpp>
-#include <boost/asio/impl/compose.hpp>
-#include <boost/asio/impl/executor.hpp>
-#include <boost/asio/io_context.hpp>
-#include <boost/asio/strand.hpp>
-#include <boost/beast/core/async_base.hpp>
-#pragma clang diagnostic pop
-#endif // DEPRECATED_ALLOCATOR_VOID && __clang__
+#endif
+
+#cmakedefine DISABLE_CLANG_C11_EXTENTIONS
+#if !__has_feature(c_atomic) && defined(DISABLE_CLANG_C11_EXTENTIONS)
+#pragma clang diagnostic ignored "-Wc11-extensions"
+#endif // !__has_feature(c_atomic) && defined(DISABLE_CLANG_C11_EXTENTIONS)
+
+#endif // __clang__
+
+#ifdef _MSC_VER
+
+#pragma warning(disable : 4459)
+#pragma warning(disable : 4646)
+#pragma warning(disable : 4702)
+
+#endif // _MSC_VER
#cmakedefine CMAKE_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@"

View File

@ -0,0 +1,67 @@
--- src/net/adapter.cpp.orig
+++ src/net/adapter.cpp
@@ -27,11 +27,12 @@
#include <pichi/vo/messages.hpp>
#include <pichi/vo/options.hpp>
-#ifdef DEPRECATED_RFC2818_CLASS
+#include <boost/version.hpp>
+#if BOOST_VERSION >= 107300
#include <boost/asio/ssl/host_name_verification.hpp>
-#else // DEPRECATED_RFC2818_CLASS
+#else // BOOST_VERSION >= 107300
#include <boost/asio/ssl/rfc2818_verification.hpp>
-#endif // DEPRECATED_RFC2818_CLASS
+#endif // BOOST_VERSION >= 107300
using namespace std;
namespace asio = boost::asio;
@@ -67,11 +68,11 @@ static auto createTlsContext(vo::TlsEgressOption const
ctx.load_verify_file(*option.caFile_);
else {
ctx.set_default_verify_paths();
-#ifdef DEPRECATED_RFC2818_CLASS
+#if BOOST_VERSION >= 107300
ctx.set_verify_callback(ssl::host_name_verification{option.serverName_.value_or(serverName)});
-#else // DEPRECATED_RFC2818_CLASS
+#else // BOOST_VERSION >= 107300
ctx.set_verify_callback(ssl::rfc2818_verification{option.serverName_.value_or(serverName)});
-#endif // DEPRECATED_RFC2818_CLASS
+#endif // BOOST_VERSION >= 107300
}
return ctx;
}
@@ -95,16 +96,10 @@ unique_ptr<Ingress> makeShadowsocksIngress(Socket&& s,
psk = {container,
crypto::generateKey(option.method_, ConstBuffer<uint8_t>{option.password_}, container)};
switch (option.method_) {
-#if MBEDTLS_VERSION_MAJOR < 3
case CryptoMethod::RC4_MD5:
return make_unique<SSStreamAdapter<CryptoMethod::RC4_MD5, Socket>>(psk, forward<Socket>(s));
case CryptoMethod::BF_CFB:
return make_unique<SSStreamAdapter<CryptoMethod::BF_CFB, Socket>>(psk, forward<Socket>(s));
-#else // MBEDTLS_VERSION_MAJOR < 3
- case CryptoMethod::RC4_MD5:
- case CryptoMethod::BF_CFB:
- fail(PichiError::SEMANTIC_ERROR, vo::msg::DEPRECATED_METHOD);
-#endif // MBEDTLS_VERSION_MAJOR < 3
case CryptoMethod::AES_128_CTR:
return make_unique<SSStreamAdapter<CryptoMethod::AES_128_CTR, Socket>>(psk, forward<Socket>(s));
case CryptoMethod::AES_192_CTR:
@@ -158,16 +153,10 @@ static unique_ptr<Egress> makeShadowsocksEgress(vo::Sh
auto psk = MutableBuffer<uint8_t>{container, len};
switch (option.method_) {
-#if MBEDTLS_VERSION_MAJOR < 3
case CryptoMethod::RC4_MD5:
return make_unique<SSStreamAdapter<CryptoMethod::RC4_MD5, TCPSocket>>(psk, io);
case CryptoMethod::BF_CFB:
return make_unique<SSStreamAdapter<CryptoMethod::BF_CFB, TCPSocket>>(psk, io);
-#else // MBEDTLS_VERSION_MAJOR < 3
- case CryptoMethod::RC4_MD5:
- case CryptoMethod::BF_CFB:
- fail(PichiError::SEMANTIC_ERROR, vo::msg::DEPRECATED_METHOD);
-#endif // MBEDTLS_VERSION_MAJOR < 3
case CryptoMethod::AES_128_CTR:
return make_unique<SSStreamAdapter<CryptoMethod::AES_128_CTR, TCPSocket>>(psk, io);
case CryptoMethod::AES_192_CTR: