From: Arran Cudbard-Bell Date: Fri, 2 Mar 2018 07:20:09 +0000 (+0600) Subject: Allow no listen sections in a virtual server X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=566e354d97fe95a724bae3e4d87019be0dbb7986;p=thirdparty%2Ffreeradius-server.git Allow no listen sections in a virtual server The plan is to add a namespace registry with compilation callbacks, then we can error out if the namespace is invalid, and bitch about unhandled sections --- diff --git a/src/main/virtual_servers.c b/src/main/virtual_servers.c index 280a787189c..386cc8c5522 100644 --- a/src/main/virtual_servers.c +++ b/src/main/virtual_servers.c @@ -96,7 +96,8 @@ static int listen_parse(TALLOC_CTX *ctx, void *out, CONF_ITEM *ci, CONF_PARSER c static const CONF_PARSER server_config[] = { { FR_CONF_OFFSET("namespace", FR_TYPE_STRING, fr_virtual_server_t, namespace) }, - { FR_CONF_OFFSET("listen", FR_TYPE_SUBSECTION | FR_TYPE_MULTI, fr_virtual_server_t, listener), \ + { FR_CONF_OFFSET("listen", FR_TYPE_SUBSECTION | FR_TYPE_MULTI | FR_TYPE_OK_MISSING, + fr_virtual_server_t, listener), \ .subcs_size = sizeof(fr_virtual_listen_t), .subcs_type = "fr_virtual_listen_t", .func = listen_parse}, @@ -389,6 +390,12 @@ int virtual_servers_instantiate(void) listener = virtual_servers[i]->listener; listen_cnt = talloc_array_length(listener); + /* + * Not all virtual servers have listeners, + * some are just used to wrap unlang logic. + */ + if (listen_cnt == 0) continue; + DEBUG("Compiling policies in server %s { ... }", cf_section_name2(listener[0]->server_cs)); for (j = 0; j < listen_cnt; j++) {