mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-28 16:14:09 +02:00
Replace std::shared_ptr<AsioTlsStream> with Shared<AsioTlsStream>::Ptr
This commit is contained in:
parent
b046ffe152
commit
a1683568a1
@ -126,7 +126,7 @@ size_t NetString::WriteStringToStream(const Stream::Ptr& stream, const String& s
|
|||||||
* @exception invalid_argument The input stream is invalid.
|
* @exception invalid_argument The input stream is invalid.
|
||||||
* @see https://github.com/PeterScott/netstring-c/blob/master/netstring.c
|
* @see https://github.com/PeterScott/netstring-c/blob/master/netstring.c
|
||||||
*/
|
*/
|
||||||
String NetString::ReadStringFromStream(const std::shared_ptr<AsioTlsStream>& stream,
|
String NetString::ReadStringFromStream(const Shared<AsioTlsStream>::Ptr& stream,
|
||||||
ssize_t maxMessageLength)
|
ssize_t maxMessageLength)
|
||||||
{
|
{
|
||||||
namespace asio = boost::asio;
|
namespace asio = boost::asio;
|
||||||
@ -205,7 +205,7 @@ String NetString::ReadStringFromStream(const std::shared_ptr<AsioTlsStream>& str
|
|||||||
* @exception invalid_argument The input stream is invalid.
|
* @exception invalid_argument The input stream is invalid.
|
||||||
* @see https://github.com/PeterScott/netstring-c/blob/master/netstring.c
|
* @see https://github.com/PeterScott/netstring-c/blob/master/netstring.c
|
||||||
*/
|
*/
|
||||||
String NetString::ReadStringFromStream(const std::shared_ptr<AsioTlsStream>& stream,
|
String NetString::ReadStringFromStream(const Shared<AsioTlsStream>::Ptr& stream,
|
||||||
boost::asio::yield_context yc, ssize_t maxMessageLength)
|
boost::asio::yield_context yc, ssize_t maxMessageLength)
|
||||||
{
|
{
|
||||||
namespace asio = boost::asio;
|
namespace asio = boost::asio;
|
||||||
@ -284,7 +284,7 @@ String NetString::ReadStringFromStream(const std::shared_ptr<AsioTlsStream>& str
|
|||||||
*
|
*
|
||||||
* @return The amount of bytes written.
|
* @return The amount of bytes written.
|
||||||
*/
|
*/
|
||||||
size_t NetString::WriteStringToStream(const std::shared_ptr<AsioTlsStream>& stream, const String& str)
|
size_t NetString::WriteStringToStream(const Shared<AsioTlsStream>::Ptr& stream, const String& str)
|
||||||
{
|
{
|
||||||
namespace asio = boost::asio;
|
namespace asio = boost::asio;
|
||||||
|
|
||||||
@ -307,7 +307,7 @@ size_t NetString::WriteStringToStream(const std::shared_ptr<AsioTlsStream>& stre
|
|||||||
*
|
*
|
||||||
* @return The amount of bytes written.
|
* @return The amount of bytes written.
|
||||||
*/
|
*/
|
||||||
size_t NetString::WriteStringToStream(const std::shared_ptr<AsioTlsStream>& stream, const String& str, boost::asio::yield_context yc)
|
size_t NetString::WriteStringToStream(const Shared<AsioTlsStream>::Ptr& stream, const String& str, boost::asio::yield_context yc)
|
||||||
{
|
{
|
||||||
namespace asio = boost::asio;
|
namespace asio = boost::asio;
|
||||||
|
|
||||||
|
@ -26,12 +26,12 @@ class NetString
|
|||||||
public:
|
public:
|
||||||
static StreamReadStatus ReadStringFromStream(const Stream::Ptr& stream, String *message, StreamReadContext& context,
|
static StreamReadStatus ReadStringFromStream(const Stream::Ptr& stream, String *message, StreamReadContext& context,
|
||||||
bool may_wait = false, ssize_t maxMessageLength = -1);
|
bool may_wait = false, ssize_t maxMessageLength = -1);
|
||||||
static String ReadStringFromStream(const std::shared_ptr<AsioTlsStream>& stream, ssize_t maxMessageLength = -1);
|
static String ReadStringFromStream(const Shared<AsioTlsStream>::Ptr& stream, ssize_t maxMessageLength = -1);
|
||||||
static String ReadStringFromStream(const std::shared_ptr<AsioTlsStream>& stream,
|
static String ReadStringFromStream(const Shared<AsioTlsStream>::Ptr& stream,
|
||||||
boost::asio::yield_context yc, ssize_t maxMessageLength = -1);
|
boost::asio::yield_context yc, ssize_t maxMessageLength = -1);
|
||||||
static size_t WriteStringToStream(const Stream::Ptr& stream, const String& message);
|
static size_t WriteStringToStream(const Stream::Ptr& stream, const String& message);
|
||||||
static size_t WriteStringToStream(const std::shared_ptr<AsioTlsStream>& stream, const String& message);
|
static size_t WriteStringToStream(const Shared<AsioTlsStream>::Ptr& stream, const String& message);
|
||||||
static size_t WriteStringToStream(const std::shared_ptr<AsioTlsStream>& stream, const String& message, boost::asio::yield_context yc);
|
static size_t WriteStringToStream(const Shared<AsioTlsStream>::Ptr& stream, const String& message, boost::asio::yield_context yc);
|
||||||
static void WriteStringToStream(std::ostream& stream, const String& message);
|
static void WriteStringToStream(std::ostream& stream, const String& message);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
#define TLSSTREAM_H
|
#define TLSSTREAM_H
|
||||||
|
|
||||||
#include "base/i2-base.hpp"
|
#include "base/i2-base.hpp"
|
||||||
|
#include "base/shared.hpp"
|
||||||
#include "base/socket.hpp"
|
#include "base/socket.hpp"
|
||||||
#include "base/stream.hpp"
|
#include "base/stream.hpp"
|
||||||
#include "base/tlsutility.hpp"
|
#include "base/tlsutility.hpp"
|
||||||
@ -85,7 +86,7 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
typedef boost::asio::buffered_stream<boost::asio::ip::tcp::socket> AsioTcpStream;
|
typedef boost::asio::buffered_stream<boost::asio::ip::tcp::socket> AsioTcpStream;
|
||||||
typedef std::pair<std::shared_ptr<AsioTlsStream>, std::shared_ptr<AsioTcpStream>> OptionalTlsStream;
|
typedef std::pair<Shared<AsioTlsStream>::Ptr, std::shared_ptr<AsioTcpStream>> OptionalTlsStream;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ namespace po = boost::program_options;
|
|||||||
|
|
||||||
static ScriptFrame *l_ScriptFrame;
|
static ScriptFrame *l_ScriptFrame;
|
||||||
static Url::Ptr l_Url;
|
static Url::Ptr l_Url;
|
||||||
static std::shared_ptr<AsioTlsStream> l_TlsStream;
|
static Shared<AsioTlsStream>::Ptr l_TlsStream;
|
||||||
static String l_Session;
|
static String l_Session;
|
||||||
|
|
||||||
REGISTER_CLICOMMAND("console", ConsoleCommand);
|
REGISTER_CLICOMMAND("console", ConsoleCommand);
|
||||||
@ -522,7 +522,7 @@ incomplete:
|
|||||||
*
|
*
|
||||||
* @returns AsioTlsStream pointer for future HTTP connections.
|
* @returns AsioTlsStream pointer for future HTTP connections.
|
||||||
*/
|
*/
|
||||||
std::shared_ptr<AsioTlsStream> ConsoleCommand::Connect()
|
Shared<AsioTlsStream>::Ptr ConsoleCommand::Connect()
|
||||||
{
|
{
|
||||||
std::shared_ptr<boost::asio::ssl::context> sslContext;
|
std::shared_ptr<boost::asio::ssl::context> sslContext;
|
||||||
|
|
||||||
@ -537,7 +537,7 @@ std::shared_ptr<AsioTlsStream> ConsoleCommand::Connect()
|
|||||||
String host = l_Url->GetHost();
|
String host = l_Url->GetHost();
|
||||||
String port = l_Url->GetPort();
|
String port = l_Url->GetPort();
|
||||||
|
|
||||||
std::shared_ptr<AsioTlsStream> stream = std::make_shared<AsioTlsStream>(IoEngine::Get().GetIoContext(), *sslContext, host);
|
Shared<AsioTlsStream>::Ptr stream = Shared<AsioTlsStream>::Make(IoEngine::Get().GetIoContext(), *sslContext, host);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
icinga::Connect(stream->lowest_layer(), host, port);
|
icinga::Connect(stream->lowest_layer(), host, port);
|
||||||
|
@ -40,7 +40,7 @@ private:
|
|||||||
mutable boost::mutex m_Mutex;
|
mutable boost::mutex m_Mutex;
|
||||||
mutable boost::condition_variable m_CV;
|
mutable boost::condition_variable m_CV;
|
||||||
|
|
||||||
static std::shared_ptr<AsioTlsStream> Connect();
|
static Shared<AsioTlsStream>::Ptr Connect();
|
||||||
|
|
||||||
static Value ExecuteScript(const String& session, const String& command, bool sandboxed);
|
static Value ExecuteScript(const String& session, const String& command, bool sandboxed);
|
||||||
static Array::Ptr AutoCompleteScript(const String& session, const String& command, bool sandboxed);
|
static Array::Ptr AutoCompleteScript(const String& session, const String& command, bool sandboxed);
|
||||||
|
@ -598,7 +598,8 @@ OptionalTlsStream ElasticsearchWriter::Connect()
|
|||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
|
|
||||||
stream.first = std::make_shared<AsioTlsStream>(IoEngine::Get().GetIoContext(), *sslContext, GetHost());
|
stream.first = Shared<AsioTlsStream>::Make(IoEngine::Get().GetIoContext(), *sslContext, GetHost());
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
stream.second = std::make_shared<AsioTcpStream>(IoEngine::Get().GetIoContext());
|
stream.second = std::make_shared<AsioTcpStream>(IoEngine::Get().GetIoContext());
|
||||||
}
|
}
|
||||||
|
@ -173,7 +173,8 @@ void GelfWriter::ReconnectInternal()
|
|||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_Stream.first = std::make_shared<AsioTlsStream>(IoEngine::Get().GetIoContext(), *sslContext, GetHost());
|
m_Stream.first = Shared<AsioTlsStream>::Make(IoEngine::Get().GetIoContext(), *sslContext, GetHost());
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
m_Stream.second = std::make_shared<AsioTcpStream>(IoEngine::Get().GetIoContext());
|
m_Stream.second = std::make_shared<AsioTcpStream>(IoEngine::Get().GetIoContext());
|
||||||
}
|
}
|
||||||
|
@ -187,7 +187,8 @@ OptionalTlsStream InfluxdbWriter::Connect()
|
|||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
|
|
||||||
stream.first = std::make_shared<AsioTlsStream>(IoEngine::Get().GetIoContext(), *sslContext, GetHost());
|
stream.first = Shared<AsioTlsStream>::Make(IoEngine::Get().GetIoContext(), *sslContext, GetHost());
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
stream.second = std::make_shared<AsioTcpStream>(IoEngine::Get().GetIoContext());
|
stream.second = std::make_shared<AsioTcpStream>(IoEngine::Get().GetIoContext());
|
||||||
}
|
}
|
||||||
|
@ -431,7 +431,7 @@ void ApiListener::ListenerCoroutineProc(boost::asio::yield_context yc, const std
|
|||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
try {
|
try {
|
||||||
auto sslConn (std::make_shared<AsioTlsStream>(io, *sslContext));
|
auto sslConn (Shared<AsioTlsStream>::Make(io, *sslContext));
|
||||||
|
|
||||||
server->async_accept(sslConn->lowest_layer(), yc);
|
server->async_accept(sslConn->lowest_layer(), yc);
|
||||||
|
|
||||||
@ -470,7 +470,7 @@ void ApiListener::AddConnection(const Endpoint::Ptr& endpoint)
|
|||||||
<< "Reconnecting to endpoint '" << endpoint->GetName() << "' via host '" << host << "' and port '" << port << "'";
|
<< "Reconnecting to endpoint '" << endpoint->GetName() << "' via host '" << host << "' and port '" << port << "'";
|
||||||
|
|
||||||
try {
|
try {
|
||||||
auto sslConn (std::make_shared<AsioTlsStream>(io, *sslContext, endpoint->GetName()));
|
auto sslConn (Shared<AsioTlsStream>::Make(io, *sslContext, endpoint->GetName()));
|
||||||
|
|
||||||
Connect(sslConn->lowest_layer(), host, port, yc);
|
Connect(sslConn->lowest_layer(), host, port, yc);
|
||||||
|
|
||||||
@ -488,7 +488,7 @@ void ApiListener::AddConnection(const Endpoint::Ptr& endpoint)
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void ApiListener::NewClientHandler(boost::asio::yield_context yc, const std::shared_ptr<AsioTlsStream>& client, const String& hostname, ConnectionRole role)
|
void ApiListener::NewClientHandler(boost::asio::yield_context yc, const Shared<AsioTlsStream>::Ptr& client, const String& hostname, ConnectionRole role)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
NewClientHandlerInternal(yc, client, hostname, role);
|
NewClientHandlerInternal(yc, client, hostname, role);
|
||||||
@ -506,7 +506,7 @@ void ApiListener::NewClientHandler(boost::asio::yield_context yc, const std::sha
|
|||||||
*
|
*
|
||||||
* @param client The new client.
|
* @param client The new client.
|
||||||
*/
|
*/
|
||||||
void ApiListener::NewClientHandlerInternal(boost::asio::yield_context yc, const std::shared_ptr<AsioTlsStream>& client, const String& hostname, ConnectionRole role)
|
void ApiListener::NewClientHandlerInternal(boost::asio::yield_context yc, const Shared<AsioTlsStream>::Ptr& client, const String& hostname, ConnectionRole role)
|
||||||
{
|
{
|
||||||
namespace asio = boost::asio;
|
namespace asio = boost::asio;
|
||||||
namespace ssl = asio::ssl;
|
namespace ssl = asio::ssl;
|
||||||
|
@ -150,8 +150,8 @@ private:
|
|||||||
bool AddListener(const String& node, const String& service);
|
bool AddListener(const String& node, const String& service);
|
||||||
void AddConnection(const Endpoint::Ptr& endpoint);
|
void AddConnection(const Endpoint::Ptr& endpoint);
|
||||||
|
|
||||||
void NewClientHandler(boost::asio::yield_context yc, const std::shared_ptr<AsioTlsStream>& client, const String& hostname, ConnectionRole role);
|
void NewClientHandler(boost::asio::yield_context yc, const Shared<AsioTlsStream>::Ptr& client, const String& hostname, ConnectionRole role);
|
||||||
void NewClientHandlerInternal(boost::asio::yield_context yc, const std::shared_ptr<AsioTlsStream>& client, const String& hostname, ConnectionRole role);
|
void NewClientHandlerInternal(boost::asio::yield_context yc, const Shared<AsioTlsStream>::Ptr& client, const String& hostname, ConnectionRole role);
|
||||||
void ListenerCoroutineProc(boost::asio::yield_context yc, const std::shared_ptr<boost::asio::ip::tcp::acceptor>& server, const std::shared_ptr<boost::asio::ssl::context>& sslContext);
|
void ListenerCoroutineProc(boost::asio::yield_context yc, const std::shared_ptr<boost::asio::ip::tcp::acceptor>& server, const std::shared_ptr<boost::asio::ssl::context>& sslContext);
|
||||||
|
|
||||||
WorkQueue m_RelayQueue;
|
WorkQueue m_RelayQueue;
|
||||||
|
@ -34,12 +34,12 @@ using namespace icinga;
|
|||||||
|
|
||||||
auto const l_ServerHeader ("Icinga/" + Application::GetAppVersion());
|
auto const l_ServerHeader ("Icinga/" + Application::GetAppVersion());
|
||||||
|
|
||||||
HttpServerConnection::HttpServerConnection(const String& identity, bool authenticated, const std::shared_ptr<AsioTlsStream>& stream)
|
HttpServerConnection::HttpServerConnection(const String& identity, bool authenticated, const Shared<AsioTlsStream>::Ptr& stream)
|
||||||
: HttpServerConnection(identity, authenticated, stream, IoEngine::Get().GetIoContext())
|
: HttpServerConnection(identity, authenticated, stream, IoEngine::Get().GetIoContext())
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
HttpServerConnection::HttpServerConnection(const String& identity, bool authenticated, const std::shared_ptr<AsioTlsStream>& stream, boost::asio::io_context& io)
|
HttpServerConnection::HttpServerConnection(const String& identity, bool authenticated, const Shared<AsioTlsStream>::Ptr& stream, boost::asio::io_context& io)
|
||||||
: m_Stream(stream), m_Seen(Utility::GetTime()), m_IoStrand(io), m_ShuttingDown(false), m_HasStartedStreaming(false),
|
: m_Stream(stream), m_Seen(Utility::GetTime()), m_IoStrand(io), m_ShuttingDown(false), m_HasStartedStreaming(false),
|
||||||
m_CheckLivenessTimer(io)
|
m_CheckLivenessTimer(io)
|
||||||
{
|
{
|
||||||
|
@ -25,7 +25,7 @@ class HttpServerConnection final : public Object
|
|||||||
public:
|
public:
|
||||||
DECLARE_PTR_TYPEDEFS(HttpServerConnection);
|
DECLARE_PTR_TYPEDEFS(HttpServerConnection);
|
||||||
|
|
||||||
HttpServerConnection(const String& identity, bool authenticated, const std::shared_ptr<AsioTlsStream>& stream);
|
HttpServerConnection(const String& identity, bool authenticated, const Shared<AsioTlsStream>::Ptr& stream);
|
||||||
|
|
||||||
void Start();
|
void Start();
|
||||||
void Disconnect();
|
void Disconnect();
|
||||||
@ -35,7 +35,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
ApiUser::Ptr m_ApiUser;
|
ApiUser::Ptr m_ApiUser;
|
||||||
std::shared_ptr<AsioTlsStream> m_Stream;
|
Shared<AsioTlsStream>::Ptr m_Stream;
|
||||||
double m_Seen;
|
double m_Seen;
|
||||||
String m_PeerAddress;
|
String m_PeerAddress;
|
||||||
boost::asio::io_context::strand m_IoStrand;
|
boost::asio::io_context::strand m_IoStrand;
|
||||||
@ -43,7 +43,7 @@ private:
|
|||||||
bool m_HasStartedStreaming;
|
bool m_HasStartedStreaming;
|
||||||
boost::asio::deadline_timer m_CheckLivenessTimer;
|
boost::asio::deadline_timer m_CheckLivenessTimer;
|
||||||
|
|
||||||
HttpServerConnection(const String& identity, bool authenticated, const std::shared_ptr<AsioTlsStream>& stream, boost::asio::io_context& io);
|
HttpServerConnection(const String& identity, bool authenticated, const Shared<AsioTlsStream>::Ptr& stream, boost::asio::io_context& io);
|
||||||
|
|
||||||
void ProcessMessages(boost::asio::yield_context yc);
|
void ProcessMessages(boost::asio::yield_context yc);
|
||||||
void CheckLiveness(boost::asio::yield_context yc);
|
void CheckLiveness(boost::asio::yield_context yc);
|
||||||
|
@ -52,7 +52,7 @@ static bool GetDebugJsonRpcCached()
|
|||||||
*
|
*
|
||||||
* @return The amount of bytes sent.
|
* @return The amount of bytes sent.
|
||||||
*/
|
*/
|
||||||
size_t JsonRpc::SendMessage(const std::shared_ptr<AsioTlsStream>& stream, const Dictionary::Ptr& message)
|
size_t JsonRpc::SendMessage(const Shared<AsioTlsStream>::Ptr& stream, const Dictionary::Ptr& message)
|
||||||
{
|
{
|
||||||
String json = JsonEncode(message);
|
String json = JsonEncode(message);
|
||||||
|
|
||||||
@ -71,7 +71,7 @@ size_t JsonRpc::SendMessage(const std::shared_ptr<AsioTlsStream>& stream, const
|
|||||||
*
|
*
|
||||||
* @return The amount of bytes sent.
|
* @return The amount of bytes sent.
|
||||||
*/
|
*/
|
||||||
size_t JsonRpc::SendMessage(const std::shared_ptr<AsioTlsStream>& stream, const Dictionary::Ptr& message, boost::asio::yield_context yc)
|
size_t JsonRpc::SendMessage(const Shared<AsioTlsStream>::Ptr& stream, const Dictionary::Ptr& message, boost::asio::yield_context yc)
|
||||||
{
|
{
|
||||||
return JsonRpc::SendRawMessage(stream, JsonEncode(message), yc);
|
return JsonRpc::SendRawMessage(stream, JsonEncode(message), yc);
|
||||||
}
|
}
|
||||||
@ -85,7 +85,7 @@ size_t JsonRpc::SendMessage(const std::shared_ptr<AsioTlsStream>& stream, const
|
|||||||
*
|
*
|
||||||
* @return bytes sent
|
* @return bytes sent
|
||||||
*/
|
*/
|
||||||
size_t JsonRpc::SendRawMessage(const std::shared_ptr<AsioTlsStream>& stream, const String& json, boost::asio::yield_context yc)
|
size_t JsonRpc::SendRawMessage(const Shared<AsioTlsStream>::Ptr& stream, const String& json, boost::asio::yield_context yc)
|
||||||
{
|
{
|
||||||
#ifdef I2_DEBUG
|
#ifdef I2_DEBUG
|
||||||
if (GetDebugJsonRpcCached())
|
if (GetDebugJsonRpcCached())
|
||||||
@ -104,7 +104,7 @@ size_t JsonRpc::SendRawMessage(const std::shared_ptr<AsioTlsStream>& stream, con
|
|||||||
* @return A JSON string
|
* @return A JSON string
|
||||||
*/
|
*/
|
||||||
|
|
||||||
String JsonRpc::ReadMessage(const std::shared_ptr<AsioTlsStream>& stream, ssize_t maxMessageLength)
|
String JsonRpc::ReadMessage(const Shared<AsioTlsStream>::Ptr& stream, ssize_t maxMessageLength)
|
||||||
{
|
{
|
||||||
String jsonString = NetString::ReadStringFromStream(stream, maxMessageLength);
|
String jsonString = NetString::ReadStringFromStream(stream, maxMessageLength);
|
||||||
|
|
||||||
@ -125,7 +125,7 @@ String JsonRpc::ReadMessage(const std::shared_ptr<AsioTlsStream>& stream, ssize_
|
|||||||
*
|
*
|
||||||
* @return A JSON string
|
* @return A JSON string
|
||||||
*/
|
*/
|
||||||
String JsonRpc::ReadMessage(const std::shared_ptr<AsioTlsStream>& stream, boost::asio::yield_context yc, ssize_t maxMessageLength)
|
String JsonRpc::ReadMessage(const Shared<AsioTlsStream>::Ptr& stream, boost::asio::yield_context yc, ssize_t maxMessageLength)
|
||||||
{
|
{
|
||||||
String jsonString = NetString::ReadStringFromStream(stream, yc, maxMessageLength);
|
String jsonString = NetString::ReadStringFromStream(stream, yc, maxMessageLength);
|
||||||
|
|
||||||
|
@ -21,12 +21,12 @@ namespace icinga
|
|||||||
class JsonRpc
|
class JsonRpc
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static size_t SendMessage(const std::shared_ptr<AsioTlsStream>& stream, const Dictionary::Ptr& message);
|
static size_t SendMessage(const Shared<AsioTlsStream>::Ptr& stream, const Dictionary::Ptr& message);
|
||||||
static size_t SendMessage(const std::shared_ptr<AsioTlsStream>& stream, const Dictionary::Ptr& message, boost::asio::yield_context yc);
|
static size_t SendMessage(const Shared<AsioTlsStream>::Ptr& stream, const Dictionary::Ptr& message, boost::asio::yield_context yc);
|
||||||
static size_t SendRawMessage(const std::shared_ptr<AsioTlsStream>& stream, const String& json, boost::asio::yield_context yc);
|
static size_t SendRawMessage(const Shared<AsioTlsStream>::Ptr& stream, const String& json, boost::asio::yield_context yc);
|
||||||
|
|
||||||
static String ReadMessage(const std::shared_ptr<AsioTlsStream>& stream, ssize_t maxMessageLength = -1);
|
static String ReadMessage(const Shared<AsioTlsStream>::Ptr& stream, ssize_t maxMessageLength = -1);
|
||||||
static String ReadMessage(const std::shared_ptr<AsioTlsStream>& stream, boost::asio::yield_context yc, ssize_t maxMessageLength = -1);
|
static String ReadMessage(const Shared<AsioTlsStream>::Ptr& stream, boost::asio::yield_context yc, ssize_t maxMessageLength = -1);
|
||||||
|
|
||||||
static Dictionary::Ptr DecodeMessage(const String& message);
|
static Dictionary::Ptr DecodeMessage(const String& message);
|
||||||
|
|
||||||
|
@ -30,13 +30,13 @@ REGISTER_APIFUNCTION(SetLogPosition, log, &SetLogPositionHandler);
|
|||||||
static RingBuffer l_TaskStats (15 * 60);
|
static RingBuffer l_TaskStats (15 * 60);
|
||||||
|
|
||||||
JsonRpcConnection::JsonRpcConnection(const String& identity, bool authenticated,
|
JsonRpcConnection::JsonRpcConnection(const String& identity, bool authenticated,
|
||||||
const std::shared_ptr<AsioTlsStream>& stream, ConnectionRole role)
|
const Shared<AsioTlsStream>::Ptr& stream, ConnectionRole role)
|
||||||
: JsonRpcConnection(identity, authenticated, stream, role, IoEngine::Get().GetIoContext())
|
: JsonRpcConnection(identity, authenticated, stream, role, IoEngine::Get().GetIoContext())
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
JsonRpcConnection::JsonRpcConnection(const String& identity, bool authenticated,
|
JsonRpcConnection::JsonRpcConnection(const String& identity, bool authenticated,
|
||||||
const std::shared_ptr<AsioTlsStream>& stream, ConnectionRole role, boost::asio::io_context& io)
|
const Shared<AsioTlsStream>::Ptr& stream, ConnectionRole role, boost::asio::io_context& io)
|
||||||
: m_Identity(identity), m_Authenticated(authenticated), m_Stream(stream), m_Role(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(io),
|
m_Timestamp(Utility::GetTime()), m_Seen(Utility::GetTime()), m_NextHeartbeat(0), m_IoStrand(io),
|
||||||
m_OutgoingMessagesQueued(io), m_WriterDone(io), m_ShuttingDown(false),
|
m_OutgoingMessagesQueued(io), m_WriterDone(io), m_ShuttingDown(false),
|
||||||
@ -158,7 +158,7 @@ Endpoint::Ptr JsonRpcConnection::GetEndpoint() const
|
|||||||
return m_Endpoint;
|
return m_Endpoint;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<AsioTlsStream> JsonRpcConnection::GetStream() const
|
Shared<AsioTlsStream>::Ptr JsonRpcConnection::GetStream() const
|
||||||
{
|
{
|
||||||
return m_Stream;
|
return m_Stream;
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ class JsonRpcConnection final : public Object
|
|||||||
public:
|
public:
|
||||||
DECLARE_PTR_TYPEDEFS(JsonRpcConnection);
|
DECLARE_PTR_TYPEDEFS(JsonRpcConnection);
|
||||||
|
|
||||||
JsonRpcConnection(const String& identity, bool authenticated, const std::shared_ptr<AsioTlsStream>& stream, ConnectionRole role);
|
JsonRpcConnection(const String& identity, bool authenticated, const Shared<AsioTlsStream>::Ptr& stream, ConnectionRole role);
|
||||||
|
|
||||||
void Start();
|
void Start();
|
||||||
|
|
||||||
@ -50,7 +50,7 @@ public:
|
|||||||
String GetIdentity() const;
|
String GetIdentity() const;
|
||||||
bool IsAuthenticated() const;
|
bool IsAuthenticated() const;
|
||||||
Endpoint::Ptr GetEndpoint() const;
|
Endpoint::Ptr GetEndpoint() const;
|
||||||
std::shared_ptr<AsioTlsStream> GetStream() const;
|
Shared<AsioTlsStream>::Ptr GetStream() const;
|
||||||
ConnectionRole GetRole() const;
|
ConnectionRole GetRole() const;
|
||||||
|
|
||||||
void Disconnect();
|
void Disconnect();
|
||||||
@ -68,7 +68,7 @@ private:
|
|||||||
String m_Identity;
|
String m_Identity;
|
||||||
bool m_Authenticated;
|
bool m_Authenticated;
|
||||||
Endpoint::Ptr m_Endpoint;
|
Endpoint::Ptr m_Endpoint;
|
||||||
std::shared_ptr<AsioTlsStream> m_Stream;
|
Shared<AsioTlsStream>::Ptr m_Stream;
|
||||||
ConnectionRole m_Role;
|
ConnectionRole m_Role;
|
||||||
double m_Timestamp;
|
double m_Timestamp;
|
||||||
double m_Seen;
|
double m_Seen;
|
||||||
@ -80,7 +80,7 @@ private:
|
|||||||
bool m_ShuttingDown;
|
bool m_ShuttingDown;
|
||||||
boost::asio::deadline_timer m_CheckLivenessTimer, m_HeartbeatTimer;
|
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_context& io);
|
JsonRpcConnection(const String& identity, bool authenticated, const Shared<AsioTlsStream>::Ptr& stream, ConnectionRole role, boost::asio::io_context& io);
|
||||||
|
|
||||||
void HandleIncomingMessages(boost::asio::yield_context yc);
|
void HandleIncomingMessages(boost::asio::yield_context yc);
|
||||||
void WriteOutgoingMessages(boost::asio::yield_context yc);
|
void WriteOutgoingMessages(boost::asio::yield_context yc);
|
||||||
|
@ -93,7 +93,7 @@ std::shared_ptr<X509> PkiUtility::FetchCert(const String& host, const String& po
|
|||||||
return std::shared_ptr<X509>();
|
return std::shared_ptr<X509>();
|
||||||
}
|
}
|
||||||
|
|
||||||
auto stream (std::make_shared<AsioTlsStream>(IoEngine::Get().GetIoContext(), *sslContext, host));
|
auto stream (Shared<AsioTlsStream>::Make(IoEngine::Get().GetIoContext(), *sslContext, host));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Connect(stream->lowest_layer(), host, port);
|
Connect(stream->lowest_layer(), host, port);
|
||||||
@ -161,7 +161,7 @@ int PkiUtility::RequestCertificate(const String& host, const String& port, const
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto stream (std::make_shared<AsioTlsStream>(IoEngine::Get().GetIoContext(), *sslContext, host));
|
auto stream (Shared<AsioTlsStream>::Make(IoEngine::Get().GetIoContext(), *sslContext, host));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Connect(stream->lowest_layer(), host, port);
|
Connect(stream->lowest_layer(), host, port);
|
||||||
|
@ -174,7 +174,7 @@ static int FormatOutput(const Dictionary::Ptr& result)
|
|||||||
*
|
*
|
||||||
* @returns AsioTlsStream pointer for future HTTP connections.
|
* @returns AsioTlsStream pointer for future HTTP connections.
|
||||||
*/
|
*/
|
||||||
static std::shared_ptr<AsioTlsStream> Connect(const String& host, const String& port)
|
static Shared<AsioTlsStream>::Ptr Connect(const String& host, const String& port)
|
||||||
{
|
{
|
||||||
std::shared_ptr<boost::asio::ssl::context> sslContext;
|
std::shared_ptr<boost::asio::ssl::context> sslContext;
|
||||||
|
|
||||||
@ -186,7 +186,7 @@ static std::shared_ptr<AsioTlsStream> Connect(const String& host, const String&
|
|||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<AsioTlsStream> stream = std::make_shared<AsioTlsStream>(IoEngine::Get().GetIoContext(), *sslContext, host);
|
Shared<AsioTlsStream>::Ptr stream = Shared<AsioTlsStream>::Make(IoEngine::Get().GetIoContext(), *sslContext, host);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
icinga::Connect(stream->lowest_layer(), host, port);
|
icinga::Connect(stream->lowest_layer(), host, port);
|
||||||
@ -338,7 +338,7 @@ static Dictionary::Ptr FetchData(const String& host, const String& port, const S
|
|||||||
namespace beast = boost::beast;
|
namespace beast = boost::beast;
|
||||||
namespace http = beast::http;
|
namespace http = beast::http;
|
||||||
|
|
||||||
std::shared_ptr<AsioTlsStream> tlsStream;
|
Shared<AsioTlsStream>::Ptr tlsStream;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
tlsStream = Connect(host, port);
|
tlsStream = Connect(host, port);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user