From 9d226dab339f5767ec01ea1bcc9043ceee185cca Mon Sep 17 00:00:00 2001 From: Rob Peters Date: Mon, 25 Mar 2019 08:50:23 +0100 Subject: [PATCH] Fix for boot 1.70 get_io_service, fixed #3117 Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/domoticz/domoticz/commit/9d226dab339f5767ec01ea1bcc9043ceee185cca] --- hardware/Pinger.cpp | 10 ++++++++-- hardware/TCPProxy/tcpproxy_server.cpp | 8 +++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/hardware/Pinger.cpp b/hardware/Pinger.cpp index 01a955ba4..184378738 100644 --- a/hardware/Pinger.cpp +++ b/hardware/Pinger.cpp @@ -18,6 +18,12 @@ #include +#if BOOST_VERSION >= 107000 +#define GET_IO_SERVICE(s) ((boost::asio::io_context&)(s).get_executor().context()) +#else +#define GET_IO_SERVICE(s) ((s).get_io_service()) +#endif + class pinger : private domoticz::noncopyable { @@ -76,7 +82,7 @@ class pinger num_tries_++; if (num_tries_ > 4) { - resolver_.get_io_service().stop(); + GET_IO_SERVICE(resolver_).stop(); } else { @@ -118,7 +124,7 @@ class pinger if (num_replies_++ == 0) timer_.cancel(); m_PingState = true; - resolver_.get_io_service().stop(); + GET_IO_SERVICE(resolver_).stop(); } else { diff --git a/hardware/TCPProxy/tcpproxy_server.cpp b/hardware/TCPProxy/tcpproxy_server.cpp index fddac08de..60445d9c2 100644 --- a/hardware/TCPProxy/tcpproxy_server.cpp +++ b/hardware/TCPProxy/tcpproxy_server.cpp @@ -15,6 +15,12 @@ #include "stdafx.h" #include "tcpproxy_server.h" +#if BOOST_VERSION >= 107000 +#define GET_IO_SERVICE(s) ((boost::asio::io_context&)(s).get_executor().context()) +#else +#define GET_IO_SERVICE(s) ((s).get_io_service()) +#endif + namespace tcp_proxy { bridge::bridge(boost::asio::io_service& ios) @@ -38,7 +44,7 @@ namespace tcp_proxy boost::asio::ip::tcp::endpoint end; - boost::asio::io_service &ios=downstream_socket_.get_io_service(); + boost::asio::io_service &ios= GET_IO_SERVICE(downstream_socket_); boost::asio::ip::tcp::resolver resolver(ios); boost::asio::ip::tcp::resolver::query query(upstream_host, upstream_port, boost::asio::ip::resolver_query_base::numeric_service); boost::asio::ip::tcp::resolver::iterator i = resolver.resolve(query);