aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt5
-rw-r--r--contrib/epee/include/net/net_helper.h10
2 files changed, 14 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3eddfca0e..17f375c91 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -658,6 +658,11 @@ if(NOT Boost_FOUND)
die("Could not find Boost libraries, please make sure you have installed Boost or libboost-all-dev (1.58) or the equivalent")
elseif(Boost_FOUND)
message(STATUS "Found Boost Version: ${Boost_VERSION}")
+ if (Boost_VERSION VERSION_LESS 1.62 AND NOT (OPENSSL_VERSION VERSION_LESS 1.1))
+ message(FATAL_ERROR "Boost older than 1.62 is too old to link with OpenSSL 1.1 or newer. "
+ "Update Boost or install OpenSSL 1.0 and set path to it when running cmake: "
+ "cmake -DOPENSSL_ROOT_DIR='/usr/include/openssl-1.0;/usr/lib/openssl-1.0'")
+ endif()
endif()
include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
diff --git a/contrib/epee/include/net/net_helper.h b/contrib/epee/include/net/net_helper.h
index c8e4c7818..e0d80f964 100644
--- a/contrib/epee/include/net/net_helper.h
+++ b/contrib/epee/include/net/net_helper.h
@@ -36,6 +36,7 @@
#include <istream>
#include <ostream>
#include <string>
+#include <boost/version.hpp>
#include <boost/asio.hpp>
#include <boost/asio/ssl.hpp>
#include <boost/asio/steady_timer.hpp>
@@ -576,7 +577,14 @@ namespace net_utils
m_io_service.run_one();
}
// Ignore "short read" error
- if (ec.category() == boost::asio::error::get_ssl_category() && ec.value() != ERR_PACK(ERR_LIB_SSL, 0, SSL_R_SHORT_READ))
+ if (ec.category() == boost::asio::error::get_ssl_category() &&
+ ec.value() !=
+#if BOOST_VERSION >= 106200
+ boost::asio::ssl::error::stream_truncated
+#else // older Boost supports only OpenSSL 1.0, so 1.0-only macros are appropriate
+ ERR_PACK(ERR_LIB_SSL, 0, SSL_R_SHORT_READ)
+#endif
+ )
MDEBUG("Problems at ssl shutdown: " << ec.message());
}