From: Alan T. DeKok Date: Wed, 30 Apr 2025 17:12:11 +0000 (-0400) Subject: refuse to start when no 'listen' sections are configured. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2fab38e0ff32c1eb6e6300182a8588f5aca5d62c;p=thirdparty%2Ffreeradius-server.git refuse to start when no 'listen' sections are configured. It helps to fail with a descriptive error, rather than silently doing the wrong thing. --- diff --git a/src/lib/server/virtual_servers.c b/src/lib/server/virtual_servers.c index f385346598..f48b24c200 100644 --- a/src/lib/server/virtual_servers.c +++ b/src/lib/server/virtual_servers.c @@ -1528,6 +1528,7 @@ static fr_dict_t const *virtual_server_local_dict(CONF_SECTION *server_cs, fr_di int virtual_servers_open(fr_schedule_t *sc) { size_t i, server_cnt = virtual_servers ? talloc_array_length(virtual_servers) : 0; + int opened = 0; fr_assert(virtual_servers); @@ -1541,7 +1542,7 @@ int virtual_servers_open(fr_schedule_t *sc) listeners = virtual_servers[i]->listeners; listener_cnt = talloc_array_length(listeners); - for (j = 0; j < listener_cnt; j++) { + for (j = 0; j < listener_cnt; j++) { fr_virtual_listen_t *listener = listeners[j]; fr_assert(listener != NULL); @@ -1578,6 +1579,7 @@ int virtual_servers_open(fr_schedule_t *sc) return -1; } + opened++; } /* @@ -1588,6 +1590,12 @@ int virtual_servers_open(fr_schedule_t *sc) } } + if (!opened) { + ERROR("There are no 'listen' sections defined."); + ERROR("Refusing to start, as the server will never process any packets."); + return -1; + } + return 0; }