aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2017-11-01 11:25:53 +0200
committerRiccardo Spagni <ric@spagni.net>2017-11-01 11:25:53 +0200
commit35dbb3be330059f4965b33a35ea431a499b8514a (patch)
tree86b21a508b6b3d36c105c0a16b044ade826dcaf2
parentMerge pull request #2703 (diff)
parentcmake: epee: use var from FindOpenSSL.cmake (diff)
downloadmonero-35dbb3be330059f4965b33a35ea431a499b8514a.tar.xz
Merge pull request #2663
4b228dd3 cmake: epee: use var from FindOpenSSL.cmake (redfish) 29497f79 epee: use boost type for SSL error code (redfish)
-rw-r--r--CMakeLists.txt5
-rw-r--r--contrib/epee/include/net/net_helper.h10
-rw-r--r--contrib/epee/src/CMakeLists.txt3
3 files changed, 15 insertions, 3 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 34d223d17..ee0e13fc1 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());
}
diff --git a/contrib/epee/src/CMakeLists.txt b/contrib/epee/src/CMakeLists.txt
index af3c6ca5f..3b41f415e 100644
--- a/contrib/epee/src/CMakeLists.txt
+++ b/contrib/epee/src/CMakeLists.txt
@@ -49,6 +49,5 @@ target_link_libraries(epee
easylogging
${Boost_FILESYSTEM_LIBRARY}
PRIVATE
- ssl
- crypto
+ ${OPENSSL_LIBRARIES}
${EXTRA_LIBRARIES})