}
if(listen_sockets >= MAXSOCKETS) {
+ listen_sockets = MAXSOCKETS;
logger(DEBUG_ALWAYS, LOG_ERR, "Too many listening sockets");
freeaddrinfo(ai);
return false;
/* Open sockets */
- if(!do_detach && getenv("LISTEN_FDS")) {
+ const char *listen_fds = getenv("LISTEN_FDS");
+
+ if(!do_detach && listen_fds) {
sockaddr_t sa;
socklen_t salen;
- listen_sockets = atoi(getenv("LISTEN_FDS"));
+ listen_sockets = atoi(listen_fds);
#ifdef HAVE_UNSETENV
unsetenv("LISTEN_FDS");
#endif
if(listen_sockets > MAXSOCKETS) {
+ listen_sockets = MAXSOCKETS;
logger(DEBUG_ALWAYS, LOG_ERR, "Too many listening sockets");
return false;
}