From 7d2298b95a2f3e912da9e1c27afe7e628cd0331c Mon Sep 17 00:00:00 2001 From: Roman Gershman Date: Fri, 19 Aug 2022 15:26:19 +0300 Subject: [PATCH] fix(server): Fix unrelevant error message when using UDS. Also fixes #248. Signed-off-by: Roman Gershman --- helio | 2 +- src/facade/dragonfly_listener.cc | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/helio b/helio index a2fffa313..d03ea0cae 160000 --- a/helio +++ b/helio @@ -1 +1 @@ -Subproject commit a2fffa3132683fa61f53f9e80caa57e4f714f0bc +Subproject commit d03ea0cae7d21de11391d2146e46f31457c7cef2 diff --git a/src/facade/dragonfly_listener.cc b/src/facade/dragonfly_listener.cc index 081bdb0e8..bf6c95ad8 100644 --- a/src/facade/dragonfly_listener.cc +++ b/src/facade/dragonfly_listener.cc @@ -158,7 +158,18 @@ error_code Listener::ConfigureServerSocket(int fd) { } bool success = ConfigureKeepAlive(fd, kInterval); - LOG_IF(WARNING, !success) << "Could not configure keep alive " << detail::SafeErrorMessage(errno); + if (!success) { + int myerr = errno; + + int socket_type; + socklen_t length = sizeof(socket_type); + + // Ignore the error on UDS. + if (getsockopt(fd, SOL_SOCKET, SO_DOMAIN, &socket_type, &length) != 0 || + socket_type != AF_UNIX) { + LOG(WARNING) << "Could not configure keep alive " << detail::SafeErrorMessage(myerr); + } + } return error_code{}; }