use std::string instead of const char* in rmq struct

This commit is contained in:
Grant Limberg 2019-10-31 15:08:59 -07:00
parent 74478b24b0
commit cc79ec6179
No known key found for this signature in database
GPG Key ID: 2BA62CCABBB4095A
3 changed files with 11 additions and 9 deletions

View File

@ -51,13 +51,14 @@ void RabbitMQ::init()
throw std::runtime_error("Can't create socket for RabbitMQ");
}
_status = amqp_socket_open_noblock(_socket, _mqc->host, _mqc->port, &tval);
fprintf(stderr, "RabbitMQ: amqp://%s:%s@%s:%d\n", _mqc->username.c_str(), _mqc->password.c_str(), _mqc->host.c_str(), _mqc->port);
_status = amqp_socket_open_noblock(_socket, _mqc->host.c_str(), _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);
_mqc->username.c_str(), _mqc->password.c_str());
if (r.reply_type != AMQP_RESPONSE_NORMAL) {
throw std::runtime_error("RabbitMQ Login Error");
}

View File

@ -15,14 +15,15 @@
#define ZT_CONTROLLER_RABBITMQ_HPP
#include "DB.hpp"
#include <string>
namespace ZeroTier
{
struct MQConfig {
const char *host;
std::string host;
int port;
const char *username;
const char *password;
std::string username;
std::string password;
};
}
@ -32,7 +33,7 @@ struct MQConfig {
#include <amqp.h>
#include <amqp_tcp_socket.h>
#include <string>
namespace ZeroTier
{

View File

@ -990,9 +990,9 @@ public:
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();
_mqc->host = OSUtils::jsonString(rmq["host"], "");
_mqc->username = OSUtils::jsonString(rmq["username"], "");
_mqc->password = OSUtils::jsonString(rmq["password"], "");
}
// Bind to wildcard instead of to specific interfaces (disables full tunnel capability)