aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorredfish <redfish@galactica.pw>2017-10-16 02:41:32 +0000
committerredfish <redfish@galactica.pw>2017-10-17 16:12:58 -0400
commit29497f7920e8c171bdce076718513c2b062961c0 (patch)
tree96f1d0cd764213659e15b1d4fdc58c588984adba
parentMerge pull request #2601 (diff)
downloadmonero-29497f7920e8c171bdce076718513c2b062961c0.tar.xz
epee: use boost type for SSL error code
Fixes compile error when building with OpenSSL v1.1: contrib/epee/include/net/net_helper.h: In member function ‘void epee::net_utils::blocked_mode_client::shutdown_ssl()’: contrib/epee/include/net/net_helper.h:579:106: error: ‘SSL_R_SHORT_READ’ was not declared in this scope if (ec.category() == boost::asio::error::get_ssl_category() && ec.value() != ERR_PACK(ERR_LIB_SSL, 0, SSL_R_SHORT_READ)) ^ contrib/epee/include/net/net_helper.h:579:106: note: suggested alternative: ‘SSL_F_SSL_READ’ See boost/asio/ssl/error.hpp. Boost handles differences between OpenSSL versions. cmake: fail if Boost is too old for OpenSSL v1.1
-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());
}