domoticz: fix boost 1.70 compat
authorRosen Penev <rosenp@gmail.com>
Thu, 25 Apr 2019 18:07:36 +0000 (11:07 -0700)
committerRosen Penev <rosenp@gmail.com>
Thu, 25 Apr 2019 23:47:14 +0000 (16:47 -0700)
This is an upstream backport that deals with an API change in Boost.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
utils/domoticz/Makefile
utils/domoticz/patches/010-boost-170-fix.patch [new file with mode: 0644]

index b91e1dd67e9e745dabcf109673ce2be0f23cb14a..1fee52fe7079fc8afc07d2d45a22b78950753700 100644 (file)
@@ -12,7 +12,7 @@ PKG_VERSION_MAJOR:=4
 PKG_VERSION_PATCH:=9700
 PKG_COMMIT:=
 PKG_VERSION:=$(PKG_VERSION_MAJOR).$(PKG_VERSION_PATCH)
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 ifeq ($(PKG_COMMIT),)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
diff --git a/utils/domoticz/patches/010-boost-170-fix.patch b/utils/domoticz/patches/010-boost-170-fix.patch
new file mode 100644 (file)
index 0000000..4d2bd8a
--- /dev/null
@@ -0,0 +1,71 @@
+From 9d226dab339f5767ec01ea1bcc9043ceee185cca Mon Sep 17 00:00:00 2001
+From: Rob Peters <info@domoticz.com>
+Date: Mon, 25 Mar 2019 08:50:23 +0100
+Subject: [PATCH] Fix for boot 1.70 get_io_service, fixed #3117
+
+---
+ 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 <iostream>
++#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);