From fcb4221f97a7545ac741b184c53c10c3ac2c06b3 Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Tue, 5 Mar 2019 15:11:50 -0800 Subject: [PATCH] rabbitMQ implementation --- controller/EmbeddedNetworkController.cpp | 7 +- controller/EmbeddedNetworkController.hpp | 6 +- controller/PostgreSQL.cpp | 57 +++++++++++- controller/PostgreSQL.hpp | 12 +-- controller/RabbitMQ.cpp | 91 +++++++++++++++++++ controller/RabbitMQ.hpp | 75 +++++++++++++++ ext/librabbitmq/centos_x64/lib/librabbitmq.a | Bin 134844 -> 137332 bytes objects.mk | 1 + service/OneService.cpp | 17 +++- 9 files changed, 249 insertions(+), 17 deletions(-) create mode 100644 controller/RabbitMQ.cpp create mode 100644 controller/RabbitMQ.hpp diff --git a/controller/EmbeddedNetworkController.cpp b/controller/EmbeddedNetworkController.cpp index 8b3f1517f..5ddcaa4b4 100644 --- a/controller/EmbeddedNetworkController.cpp +++ b/controller/EmbeddedNetworkController.cpp @@ -464,12 +464,13 @@ static bool _parseRule(json &r,ZT_VirtualNetworkRule &rule) } // anonymous namespace -EmbeddedNetworkController::EmbeddedNetworkController(Node *node,const char *dbPath, int listenPort) : +EmbeddedNetworkController::EmbeddedNetworkController(Node *node,const char *dbPath, int listenPort, MQConfig *mqc) : _startTime(OSUtils::now()), _listenPort(listenPort), _node(node), _path(dbPath), - _sender((NetworkController::Sender *)0) + _sender((NetworkController::Sender *)0), + _mqc(mqc) { } @@ -489,7 +490,7 @@ void EmbeddedNetworkController::init(const Identity &signingId,Sender *sender) _signingIdAddressString = signingId.address().toString(tmp); #ifdef ZT_CONTROLLER_USE_LIBPQ if ((_path.length() > 9)&&(_path.substr(0,9) == "postgres:")) - _db.reset(new PostgreSQL(this,_signingId,_path.substr(9).c_str(), _listenPort)); + _db.reset(new PostgreSQL(this,_signingId,_path.substr(9).c_str(), _listenPort, _mqc)); else // else use FileDB after endif #endif _db.reset(new FileDB(this,_signingId,_path.c_str())); diff --git a/controller/EmbeddedNetworkController.hpp b/controller/EmbeddedNetworkController.hpp index 718c97ffd..269442a87 100644 --- a/controller/EmbeddedNetworkController.hpp +++ b/controller/EmbeddedNetworkController.hpp @@ -60,6 +60,8 @@ namespace ZeroTier { class Node; +struct MQConfig; + class EmbeddedNetworkController : public NetworkController { public: @@ -67,7 +69,7 @@ public: * @param node Parent node * @param dbPath Database path (file path or database credentials) */ - EmbeddedNetworkController(Node *node,const char *dbPath, int listenPort); + EmbeddedNetworkController(Node *node,const char *dbPath, int listenPort, MQConfig *mqc = NULL); virtual ~EmbeddedNetworkController(); virtual void init(const Identity &signingId,Sender *sender); @@ -164,6 +166,8 @@ private: std::unordered_map< _MemberStatusKey,_MemberStatus,_MemberStatusHash > _memberStatus; std::mutex _memberStatus_l; + + MQConfig *_mqc; }; } // namespace ZeroTier diff --git a/controller/PostgreSQL.cpp b/controller/PostgreSQL.cpp index 8dc56c9cc..5192dad5d 100644 --- a/controller/PostgreSQL.cpp +++ b/controller/PostgreSQL.cpp @@ -28,6 +28,7 @@ #include "PostgreSQL.hpp" #include "EmbeddedNetworkController.hpp" +#include "RabbitMQ.hpp" #include "../version.h" #include @@ -74,7 +75,7 @@ std::string join(const std::vector &elements, const char * const se using namespace ZeroTier; -PostgreSQL::PostgreSQL(EmbeddedNetworkController *const nc, const Identity &myId, const char *path, int listenPort, mq_config *mqc) +PostgreSQL::PostgreSQL(EmbeddedNetworkController *const nc, const Identity &myId, const char *path, int listenPort, MQConfig *mqc) : DB(nc, myId, path) , _ready(0) , _connected(1) @@ -646,7 +647,32 @@ void PostgreSQL::_membersWatcher_Postgres(PGconn *conn) { } void PostgreSQL::_membersWatcher_RabbitMQ() { - + char buf[11] = {0}; + std::string qname = "member_"+ std::string(_myAddress.toString(buf)); + RabbitMQ rmq(_mqc, qname.c_str()); + try { + rmq.init(); + } catch (std::runtime_error &e) { + fprintf(stderr, "RABBITMQ ERROR: %s\n", e.what()); + exit(11); + } + while (_run == 1) { + try { + std::string msg = rmq.consume(); + json tmp(json::parse(msg)); + json &ov = tmp["old_val"]; + json &nv = tmp["new_val"]; + json oldConfig, newConfig; + if (ov.is_object()) oldConfig = ov; + if (nv.is_object()) newConfig = nv; + if (oldConfig.is_object() || newConfig.is_object()) { + _memberChanged(oldConfig,newConfig,(this->_ready>=2)); + } + } catch (std::runtime_error &e) { + fprintf(stderr, "RABBITMQ ERROR: %s\n", e.what()); + break; + } catch(...) {} + } } void PostgreSQL::networksDbWatcher() @@ -714,7 +740,32 @@ void PostgreSQL::_networksWatcher_Postgres(PGconn *conn) { } void PostgreSQL::_networksWatcher_RabbitMQ() { - + char buf[11] = {0}; + std::string qname = "network_"+ std::string(_myAddress.toString(buf)); + RabbitMQ rmq(_mqc, qname.c_str()); + try { + rmq.init(); + } catch (std::runtime_error &e) { + fprintf(stderr, "RABBITMQ ERROR: %s\n", e.what()); + exit(11); + } + while (_run == 1) { + try { + std::string msg = rmq.consume(); + json tmp(json::parse(msg)); + json &ov = tmp["old_val"]; + json &nv = tmp["new_val"]; + json oldConfig, newConfig; + if (ov.is_object()) oldConfig = ov; + if (nv.is_object()) newConfig = nv; + if (oldConfig.is_object()||newConfig.is_object()) { + _networkChanged(oldConfig,newConfig,(this->_ready >= 2)); + } + } catch (std::runtime_error &e) { + fprintf(stderr, "RABBITMQ ERROR: %s\n", e.what()); + break; + } catch(...) {} + } } void PostgreSQL::commitThread() diff --git a/controller/PostgreSQL.hpp b/controller/PostgreSQL.hpp index e0dcdf06f..779d47bd5 100644 --- a/controller/PostgreSQL.hpp +++ b/controller/PostgreSQL.hpp @@ -40,13 +40,7 @@ extern "C" { namespace ZeroTier { -struct mq_config -{ - const char *host; - int port; - const char *username; - const char *password; -}; +struct MQConfig; /** * A controller database driver that talks to PostgreSQL @@ -57,7 +51,7 @@ struct mq_config class PostgreSQL : public DB { public: - PostgreSQL(EmbeddedNetworkController *const nc, const Identity &myId, const char *path, int listenPort, mq_config *mqc = NULL); + PostgreSQL(EmbeddedNetworkController *const nc, const Identity &myId, const char *path, int listenPort, MQConfig *mqc = NULL); virtual ~PostgreSQL(); virtual bool waitForReady(); @@ -115,7 +109,7 @@ private: int _listenPort; - mq_config *_mqc; + MQConfig *_mqc; }; } diff --git a/controller/RabbitMQ.cpp b/controller/RabbitMQ.cpp new file mode 100644 index 000000000..34efcde40 --- /dev/null +++ b/controller/RabbitMQ.cpp @@ -0,0 +1,91 @@ +#include "RabbitMQ.hpp" + +#include +#include +#include +#include + +namespace ZeroTier +{ + +RabbitMQ::RabbitMQ(MQConfig *cfg, const char *queueName) + : _mqc(cfg) + , _qName(queueName) + , _socket(NULL) + , _status(0) +{ +} + +RabbitMQ::~RabbitMQ() +{ + amqp_channel_close(_conn, _channel, AMQP_REPLY_SUCCESS); + amqp_connection_close(_conn, AMQP_REPLY_SUCCESS); + amqp_destroy_connection(_conn); +} + +void RabbitMQ::init() +{ + struct timeval tval; + memset(&tval, 0, sizeof(struct timeval)); + tval.tv_sec = 5; + + fprintf(stderr, "Initializing RabbitMQ %s\n", _qName); + _conn = amqp_new_connection(); + _socket = amqp_tcp_socket_new(_conn); + if (!_socket) { + throw std::runtime_error("Can't create socket for RabbitMQ"); + } + + _status = amqp_socket_open_noblock(_socket, _mqc->host, _mqc->port, &tval); + if (_status) { + throw std::runtime_error("Can't connect to RabbitMQ"); + } + + amqp_rpc_reply_t r = amqp_login(_conn, "/", 0, 131072, 0, AMQP_SASL_METHOD_PLAIN, + _mqc->username, _mqc->password); + if (r.reply_type != AMQP_RESPONSE_NORMAL) { + throw std::runtime_error("RabbitMQ Login Error"); + } + + static int chan = 0; + amqp_channel_open(_conn, ++chan); + r = amqp_get_rpc_reply(_conn); + if(r.reply_type != AMQP_RESPONSE_NORMAL) { + throw std::runtime_error("Error opening communication channel"); + } + _channel = chan; + + _q = amqp_queue_declare(_conn, _channel, amqp_cstring_bytes(_qName), 0, 0, 0, 0, amqp_empty_table); + r = amqp_get_rpc_reply(_conn); + if (r.reply_type != AMQP_RESPONSE_NORMAL) { + throw std::runtime_error("Error declaring queue"); + } + + amqp_basic_consume(_conn, _channel, amqp_cstring_bytes(_qName), amqp_empty_bytes, 0, 1, 0, amqp_empty_table); + r = amqp_get_rpc_reply(_conn); + if (r.reply_type != AMQP_RESPONSE_NORMAL) { + throw std::runtime_error("Error conuming"); + } + fprintf(stderr, "RabbitMQ Init OK %s\n", _qName); +} + +std::string RabbitMQ::consume() +{ + amqp_rpc_reply_t res; + amqp_envelope_t envelope; + amqp_maybe_release_buffers(_conn); + + res = amqp_consume_message(_conn, &envelope, NULL, 0); + if (res.reply_type != AMQP_RESPONSE_NORMAL) { + throw std::runtime_error("Error getting message"); + } + + std::string msg( + (const char*)envelope.message.body.bytes, + envelope.message.body.len + ); + amqp_destroy_envelope(&envelope); + return msg; +} + +} \ No newline at end of file diff --git a/controller/RabbitMQ.hpp b/controller/RabbitMQ.hpp new file mode 100644 index 000000000..74023b124 --- /dev/null +++ b/controller/RabbitMQ.hpp @@ -0,0 +1,75 @@ +/* + * ZeroTier One - Network Virtualization Everywhere + * Copyright (C) 2011-2019 ZeroTier, Inc. https://www.zerotier.com/ + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * -- + * + * You can be released from the requirements of the license by purchasing + * a commercial license. Buying such a license is mandatory as soon as you + * develop commercial closed-source software that incorporates or links + * directly against ZeroTier software without disclosing the source code + * of your own application. + */ +#ifndef ZT_CONTROLLER_RABBITMQ_HPP +#define ZT_CONTROLLER_RABBITMQ_HPP + +namespace ZeroTier +{ +struct MQConfig { + const char *host; + int port; + const char *username; + const char *password; +}; +} + + +#ifdef ZT_CONTROLLER_USE_LIBPQ + +#include +#include +#include + +namespace ZeroTier +{ + +class RabbitMQ { +public: + RabbitMQ(MQConfig *cfg, const char *queueName); + ~RabbitMQ(); + + void init(); + + std::string consume(); + +private: + MQConfig *_mqc; + const char *_qName; + + amqp_socket_t *_socket; + amqp_connection_state_t _conn; + amqp_queue_declare_ok_t *_q; + int _status; + + int _channel; +}; + +} + +#endif // ZT_CONTROLLER_USE_LIBPQ + +#endif // ZT_CONTROLLER_RABBITMQ_HPP + diff --git a/ext/librabbitmq/centos_x64/lib/librabbitmq.a b/ext/librabbitmq/centos_x64/lib/librabbitmq.a index 8fc39d06b33e0639e84b1a89e789a952da66ae35..9495fa7b8c3cf0d2c934519bbc536e31048cc028 100644 GIT binary patch literal 137332 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

uIXxJn7^yLOh_b|s<89+3%jn)R{xVW0$)R#M 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

J+58?aPUQ^( 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 *)_controller); // Join existing networks in networks.d @@ -1073,6 +1078,16 @@ public: if (cdbp.length() > 0) _controllerDbPath = cdbp; + json &rmq = settings["rabbitmq"]; + if (rmq.is_object() && _mqc == NULL) { + fprintf(stderr, "Reading RabbitMQ Config\n"); + _mqc = new MQConfig; + _mqc->port = rmq["port"]; + _mqc->host = OSUtils::jsonString(rmq["host"], "").c_str(); + _mqc->username = OSUtils::jsonString(rmq["username"], "").c_str(); + _mqc->password = OSUtils::jsonString(rmq["password"], "").c_str(); + } + // Bind to wildcard instead of to specific interfaces (disables full tunnel capability) json &bind = settings["bind"]; if (bind.is_array()) {