Index: server/upsd.c
===================================================================
--- server/upsd.c	(révision 3256)
+++ server/upsd.c	(copie de travail)
@@ -234,9 +234,10 @@
 
 	freeaddrinfo(res);
 
-	/* don't fail silently */
+	/* leave up to the caller to fail silently if there is no other
+	 * valid LISTEN interface */
 	if (server->sock_fd < 0) {
-		fatalx(EXIT_FAILURE, "not listening on %s port %s", server->addr, server->port);
+		upslogx(LOG_ERR, "not listening on %s port %s", server->addr, server->port);
 	} else {
 		upslogx(LOG_INFO, "listening on %s port %s", server->addr, server->port);
 	}
@@ -561,6 +562,11 @@
 	for (server = firstaddr; server; server = server->next) {
 		setuptcp(server);
 	}
+	
+	/* check if we have at least 1 valid LISTEN interface */
+	if (firstaddr->sock_fd < 0) {
+		fatalx(EXIT_FAILURE, "no listening interface available");
+	}
 }
 
 void server_free(void)
