]> granicus.if.org Git - icinga2/commitdiff
Fix build errors with Boost v1.70 7238/head
authorAlexander A. Klimov <alexander.klimov@icinga.com>
Fri, 7 Jun 2019 14:30:34 +0000 (16:30 +0200)
committerAlexander A. Klimov <alexander.klimov@icinga.com>
Fri, 7 Jun 2019 14:30:34 +0000 (16:30 +0200)
refs #7237

lib/base/tcpsocket.hpp
lib/remote/apilistener.cpp
lib/remote/httpserverconnection.cpp
lib/remote/httpserverconnection.hpp
lib/remote/jsonrpcconnection.cpp
lib/remote/jsonrpcconnection.hpp

index 5b0a9077cb19f4cfa610d803ba018478506716f5..5c6a9fcb91fb69d355f1be3c3d7d72432c8ca4b7 100644 (file)
@@ -4,6 +4,7 @@
 #define TCPSOCKET_H
 
 #include "base/i2-base.hpp"
+#include "base/io-engine.hpp"
 #include "base/socket.hpp"
 #include <boost/asio/ip/tcp.hpp>
 #include <boost/asio/spawn.hpp>
@@ -37,7 +38,7 @@ void Connect(Socket& socket, const String& node, const String& service)
 {
        using boost::asio::ip::tcp;
 
-       tcp::resolver resolver (socket.get_executor().context());
+       tcp::resolver resolver (IoEngine::Get().GetIoService());
        tcp::resolver::query query (node, service);
        auto result (resolver.resolve(query));
        auto current (result.begin());
@@ -66,7 +67,7 @@ void Connect(Socket& socket, const String& node, const String& service, boost::a
 {
        using boost::asio::ip::tcp;
 
-       tcp::resolver resolver (socket.get_executor().context());
+       tcp::resolver resolver (IoEngine::Get().GetIoService());
        tcp::resolver::query query (node, service);
        auto result (resolver.async_resolve(query, yc));
        auto current (result.begin());
index b31e70dfeee5d5d47a181e7efc3a28701bfe1642..a7f0f66a7fd18b28454fe145fc73d0c34931a68a 100644 (file)
@@ -417,7 +417,7 @@ void ApiListener::ListenerCoroutineProc(boost::asio::yield_context yc, const std
 {
        namespace asio = boost::asio;
 
-       auto& io (server->get_executor().context());
+       auto& io (IoEngine::Get().GetIoService());
 
        for (;;) {
                try {
@@ -651,7 +651,7 @@ void ApiListener::NewClientHandlerInternal(boost::asio::yield_context yc, const
 
                        endpoint->AddClient(aclient);
 
-                       asio::spawn(client->get_executor().context(), [this, aclient, endpoint, needSync](asio::yield_context yc) {
+                       asio::spawn(IoEngine::Get().GetIoService(), [this, aclient, endpoint, needSync](asio::yield_context yc) {
                                CpuBoundWork syncClient (yc);
 
                                SyncClient(aclient, endpoint, needSync);
index dc042d16c3b279eb212b2824dcc64355c127aa0b..e2db0641e637a89941849d8b704eb0790f55465a 100644 (file)
@@ -12,6 +12,7 @@
 #include "base/configtype.hpp"
 #include "base/defer.hpp"
 #include "base/exception.hpp"
+#include "base/io-engine.hpp"
 #include "base/logger.hpp"
 #include "base/objectlock.hpp"
 #include "base/timer.hpp"
@@ -20,6 +21,7 @@
 #include <limits>
 #include <memory>
 #include <stdexcept>
+#include <boost/asio/io_service.hpp>
 #include <boost/asio/spawn.hpp>
 #include <boost/beast/core.hpp>
 #include <boost/beast/http.hpp>
@@ -31,8 +33,13 @@ using namespace icinga;
 auto const l_ServerHeader ("Icinga/" + Application::GetAppVersion());
 
 HttpServerConnection::HttpServerConnection(const String& identity, bool authenticated, const std::shared_ptr<AsioTlsStream>& stream)
-       : m_Stream(stream), m_Seen(Utility::GetTime()), m_IoStrand(stream->get_executor().context()), m_ShuttingDown(false), m_HasStartedStreaming(false),
-       m_CheckLivenessTimer(stream->get_executor().context())
+       : HttpServerConnection(identity, authenticated, stream, IoEngine::Get().GetIoService())
+{
+}
+
+HttpServerConnection::HttpServerConnection(const String& identity, bool authenticated, const std::shared_ptr<AsioTlsStream>& stream, boost::asio::io_service& io)
+       : m_Stream(stream), m_Seen(Utility::GetTime()), m_IoStrand(io), m_ShuttingDown(false), m_HasStartedStreaming(false),
+       m_CheckLivenessTimer(io)
 {
        if (authenticated) {
                m_ApiUser = ApiUser::GetByClientCN(identity);
index 6586e0ff1ccdde797b4f0c542da0c224725dd386..b697d5381790f5355a6f98727320b5c610ad6c60 100644 (file)
@@ -8,6 +8,7 @@
 #include "base/tlsstream.hpp"
 #include <memory>
 #include <boost/asio/deadline_timer.hpp>
+#include <boost/asio/io_service.hpp>
 #include <boost/asio/io_service_strand.hpp>
 #include <boost/asio/spawn.hpp>
 
@@ -42,6 +43,8 @@ private:
        bool m_HasStartedStreaming;
        boost::asio::deadline_timer m_CheckLivenessTimer;
 
+       HttpServerConnection(const String& identity, bool authenticated, const std::shared_ptr<AsioTlsStream>& stream, boost::asio::io_service& io);
+
        void ProcessMessages(boost::asio::yield_context yc);
        void CheckLiveness(boost::asio::yield_context yc);
 };
index 53c3c58e5e9cb14b1e2136fb2432af692bee37c9..03902ca87e5e47d2a393a3796b2e4889a238f686 100644 (file)
@@ -16,6 +16,7 @@
 #include "base/tlsstream.hpp"
 #include <memory>
 #include <utility>
+#include <boost/asio/io_service.hpp>
 #include <boost/asio/spawn.hpp>
 #include <boost/date_time/posix_time/posix_time_duration.hpp>
 #include <boost/system/system_error.hpp>
@@ -30,10 +31,16 @@ static RingBuffer l_TaskStats (15 * 60);
 
 JsonRpcConnection::JsonRpcConnection(const String& identity, bool authenticated,
        const std::shared_ptr<AsioTlsStream>& stream, ConnectionRole role)
-       : m_Identity(identity), m_Authenticated(authenticated), m_Stream(stream),
-       m_Role(role), m_Timestamp(Utility::GetTime()), m_Seen(Utility::GetTime()), m_NextHeartbeat(0), m_IoStrand(stream->get_executor().context()),
-       m_OutgoingMessagesQueued(stream->get_executor().context()), m_WriterDone(stream->get_executor().context()), m_ShuttingDown(false),
-       m_CheckLivenessTimer(stream->get_executor().context()), m_HeartbeatTimer(stream->get_executor().context())
+       : JsonRpcConnection(identity, authenticated, stream, role, IoEngine::Get().GetIoService())
+{
+}
+
+JsonRpcConnection::JsonRpcConnection(const String& identity, bool authenticated,
+       const std::shared_ptr<AsioTlsStream>& stream, ConnectionRole role, boost::asio::io_service& io)
+       : m_Identity(identity), m_Authenticated(authenticated), m_Stream(stream), m_Role(role),
+       m_Timestamp(Utility::GetTime()), m_Seen(Utility::GetTime()), m_NextHeartbeat(0), m_IoStrand(io),
+       m_OutgoingMessagesQueued(io), m_WriterDone(io), m_ShuttingDown(false),
+       m_CheckLivenessTimer(io), m_HeartbeatTimer(io)
 {
        if (authenticated)
                m_Endpoint = Endpoint::GetByName(identity);
index caca1cb72f7c603dc50e904deacd95082acd9306..2b18353082bdd9e347c619550978f760a37c4405 100644 (file)
@@ -11,7 +11,7 @@
 #include "base/workqueue.hpp"
 #include <memory>
 #include <vector>
-#include <boost/asio/deadline_timer.hpp>
+#include <boost/asio/io_service.hpp>
 #include <boost/asio/io_service_strand.hpp>
 #include <boost/asio/spawn.hpp>
 
@@ -80,6 +80,8 @@ private:
        bool m_ShuttingDown;
        boost::asio::deadline_timer m_CheckLivenessTimer, m_HeartbeatTimer;
 
+       JsonRpcConnection(const String& identity, bool authenticated, const std::shared_ptr<AsioTlsStream>& stream, ConnectionRole role, boost::asio::io_service& io);
+
        void HandleIncomingMessages(boost::asio::yield_context yc);
        void WriteOutgoingMessages(boost::asio::yield_context yc);
        void HandleAndWriteHeartbeats(boost::asio::yield_context yc);