Fixed processing Unix listening socket failures.

This is related to issue #198 on GitHub.
This commit is contained in:
Igor Sysoev
2019-01-21 18:39:19 +03:00
parent 2677bd5604
commit fd6a6a5514

View File

@@ -1116,24 +1116,23 @@ nxt_main_listening_socket(nxt_sockaddr_t *sa, nxt_listening_socket_t *ls)
break; break;
} }
goto next; } else
}
#endif #endif
{
switch (err) {
switch (err) { case EACCES:
ls->error = NXT_SOCKET_ERROR_PORT;
break;
case EACCES: case EADDRINUSE:
ls->error = NXT_SOCKET_ERROR_PORT; ls->error = NXT_SOCKET_ERROR_INUSE;
break; break;
case EADDRINUSE: case EADDRNOTAVAIL:
ls->error = NXT_SOCKET_ERROR_INUSE; ls->error = NXT_SOCKET_ERROR_NOADDR;
break; break;
}
case EADDRNOTAVAIL:
ls->error = NXT_SOCKET_ERROR_NOADDR;
break;
} }
ls->end = nxt_sprintf(ls->start, ls->end, "bind(\\\"%*s\\\") failed %E", ls->end = nxt_sprintf(ls->start, ls->end, "bind(\\\"%*s\\\") failed %E",
@@ -1143,8 +1142,6 @@ nxt_main_listening_socket(nxt_sockaddr_t *sa, nxt_listening_socket_t *ls)
#if (NXT_HAVE_UNIX_DOMAIN) #if (NXT_HAVE_UNIX_DOMAIN)
next:
if (sa->u.sockaddr.sa_family == AF_UNIX) { if (sa->u.sockaddr.sa_family == AF_UNIX) {
char *filename; char *filename;
mode_t access; mode_t access;