blob: 1372e85df775e84fffa78ba87a637e47b5a9c2d1 [file] [log] [blame]
#include "server-conf.hpp"
#include "utils.hpp"
#include <fstream>
namespace phosphor
{
namespace rsyslog_config
{
namespace utils = phosphor::rsyslog_utils;
std::string Server::address(std::string value)
{
auto serverAddress = address();
if (serverAddress == value)
{
return serverAddress;
}
writeConfig(value, port(), configFilePath.c_str());
auto result = NetworkClient::address(value);
return result;
}
uint16_t Server::port(uint16_t value)
{
auto serverPort = port();
if (serverPort == value)
{
return serverPort;
}
writeConfig(address(), value, configFilePath.c_str());
auto result = NetworkClient::port(value);
return result;
}
void Server::writeConfig(
const std::string& serverAddress,
uint16_t serverPort,
const char* filePath)
{
std::fstream stream(filePath, std::fstream::out);
if (serverPort && !serverAddress.empty())
{
// write '*.* @@<remote-host>:<port>'
stream << "*.* @@" << serverAddress << ":" << serverPort;
}
else // this is a disable request
{
// write '#*.* @@remote-host:port'
stream << "#*.* @@remote-host:port";
}
utils::restart();
}
} // namespace rsyslog_config
} // namespace phosphor