Commit 72d81c47 authored by Petr Menšík's avatar Petr Menšík Committed by Mark Andrews

Remove few lines in unix socket handling

Reuse the same checks two times, make difference minimal.
parent cc1b77a0
......@@ -4242,22 +4242,33 @@ isc_socket_cleanunix(const isc_sockaddr_t *sockaddr, bool active) {
#define S_ISSOCK(mode) 0
#endif /* ifndef S_ISSOCK */
if (active) {
if (stat(sockaddr->type.sunix.sun_path, &sb) < 0) {
if (stat(sockaddr->type.sunix.sun_path, &sb) < 0) {
switch (errno) {
case ENOENT:
if (active) /* We exited cleanly last time */
break;
/* intentional falltrough */
default:
strerror_r(errno, strbuf, sizeof(strbuf));
isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
ISC_LOGMODULE_SOCKET, ISC_LOG_ERROR,
ISC_LOGMODULE_SOCKET,
active ? ISC_LOG_ERROR : ISC_LOG_WARNING,
"isc_socket_cleanunix: stat(%s): %s",
sockaddr->type.sunix.sun_path, strbuf);
return;
}
} else {
if (!(S_ISSOCK(sb.st_mode) || S_ISFIFO(sb.st_mode))) {
isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
ISC_LOGMODULE_SOCKET, ISC_LOG_ERROR,
ISC_LOGMODULE_SOCKET,
active ? ISC_LOG_ERROR : ISC_LOG_WARNING,
"isc_socket_cleanunix: %s: not a socket",
sockaddr->type.sunix.sun_path);
return;
}
}
if (active) {
if (unlink(sockaddr->type.sunix.sun_path) < 0) {
strerror_r(errno, strbuf, sizeof(strbuf));
isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
......@@ -4278,29 +4289,6 @@ isc_socket_cleanunix(const isc_sockaddr_t *sockaddr, bool active) {
return;
}
if (stat(sockaddr->type.sunix.sun_path, &sb) < 0) {
switch (errno) {
case ENOENT: /* We exited cleanly last time */
break;
default:
strerror_r(errno, strbuf, sizeof(strbuf));
isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
ISC_LOGMODULE_SOCKET, ISC_LOG_WARNING,
"isc_socket_cleanunix: stat(%s): %s",
sockaddr->type.sunix.sun_path, strbuf);
break;
}
goto cleanup;
}
if (!(S_ISSOCK(sb.st_mode) || S_ISFIFO(sb.st_mode))) {
isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
ISC_LOGMODULE_SOCKET, ISC_LOG_WARNING,
"isc_socket_cleanunix: %s: not a socket",
sockaddr->type.sunix.sun_path);
goto cleanup;
}
if (connect(s, (const struct sockaddr *)&sockaddr->type.sunix,
sizeof(sockaddr->type.sunix)) < 0)
{
......@@ -4326,7 +4314,6 @@ isc_socket_cleanunix(const isc_sockaddr_t *sockaddr, bool active) {
break;
}
}
cleanup:
close(s);
#else /* ifndef _WIN32 */
UNUSED(sockaddr);
......
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