Commit 7f8169f0 authored by gabime's avatar gabime

Fixed tcp_sink to accept hostnames

parent 66e86528
......@@ -8,6 +8,7 @@
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <netdb.h>
namespace spdlog {
namespace sinks {
......@@ -22,12 +23,16 @@ public:
{
SPDLOG_THROW(spdlog::spdlog_ex("Socket creation error", errno));
}
serv_addr_.sin_family = AF_INET;
serv_addr_.sin_port = ::htons(static_cast<uint16_t>(port));
if (inet_pton(AF_INET, address.c_str(), &serv_addr_.sin_addr) <= 0)
struct hostent *he = gethostbyname(address.c_str());
if (he == nullptr)
{
SPDLOG_THROW(spdlog::spdlog_ex("Invalid address/ Address not supported", errno));
SPDLOG_THROW(spdlog::spdlog_ex("gethostbyname failed", errno));
}
serv_addr_.sin_family = AF_INET;
serv_addr_.sin_addr = *(struct in_addr *)(he->h_addr);
serv_addr_.sin_port = ::htons(static_cast<uint16_t>(port));
if (connect(sock_, (struct sockaddr *)&serv_addr_, sizeof(serv_addr_)) < 0)
{
SPDLOG_THROW(spdlog::spdlog_ex("Connection Failed", errno));
......@@ -48,6 +53,8 @@ protected:
void flush_() override {}
private:
private:
int sock_;
struct sockaddr_in serv_addr_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment