Unverified Commit eef981e0 authored by dominicpoeschko's avatar dominicpoeschko Committed by GitHub

Handling SPDLOG_PREVENT_CHILD_FD in tcp_sink

Adding SOCK_CLOEXEC to socket

Fixing bug in sink_it_ (bytes_sent not added to buffer)
parent 9f24f4bc
......@@ -47,7 +47,7 @@ protected:
size_t bytes_sent = 0;
while (bytes_sent < formatted.size())
{
auto write_result = ::write(sock_, formatted.data(), formatted.size() - bytes_sent);
auto write_result = ::write(sock_, formatted.data() + bytes_sent, formatted.size() - bytes_sent);
if (write_result < 0)
{
SPDLOG_THROW(spdlog::spdlog_ex("write(2) failed", errno));
......@@ -88,7 +88,12 @@ private:
int last_errno = 0;
for (auto *rp = addrinfo_result; rp != nullptr; rp = rp->ai_next)
{
socket_rv = ::socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol);
#ifdef SPDLOG_PREVENT_CHILD_FD
int const flags = SOCK_CLOEXEC;
#else
int const flags = 0;
#endif
socket_rv = ::socket(rp->ai_family, rp->ai_socktype | flags, rp->ai_protocol);
if (socket_rv == -1)
{
last_errno = errno;
......
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