From: Nick Porter Date: Wed, 28 Jan 2026 10:16:58 +0000 (+0000) Subject: Add virtual_server_packet_type_by_cs X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9fac20dd377583a04f79a6415c6d9b0d68925b36;p=thirdparty%2Ffreeradius-server.git Add virtual_server_packet_type_by_cs To access the packet_type exported by the virtual server's process module --- diff --git a/src/lib/server/virtual_servers.c b/src/lib/server/virtual_servers.c index 857e7d313a..617cc7eb4f 100644 --- a/src/lib/server/virtual_servers.c +++ b/src/lib/server/virtual_servers.c @@ -1008,6 +1008,21 @@ virtual_server_t const *virtual_server_by_child(CONF_ITEM const *ci) return cf_data_value(cd); } +/** Return the packet type attribute for a virtual server specified by a config section + * + * @param[in] server_cs to look for packet type attribute in. + * @return + * - NULL on error. + * - packet type dict attr on success. + */ +fr_dict_attr_t const *virtual_server_packet_type_by_cs(CONF_SECTION const *server_cs) +{ + virtual_server_t const *vs = virtual_server_from_cs(server_cs); + + if (unlikely(!vs || !vs->process_module || !vs->process_module->packet_type)) return NULL; + return *vs->process_module->packet_type; +} + /** Wrapper for the config parser to allow pass1 resolution of virtual servers * */ diff --git a/src/lib/server/virtual_servers.h b/src/lib/server/virtual_servers.h index 11d190d0f2..d80be1874c 100644 --- a/src/lib/server/virtual_servers.h +++ b/src/lib/server/virtual_servers.h @@ -91,6 +91,8 @@ virtual_server_t const *virtual_server_find(char const *name) CC_HINT(nonnull); virtual_server_t const *virtual_server_by_child(CONF_ITEM const *ci) CC_HINT(nonnull); +fr_dict_attr_t const *virtual_server_packet_type_by_cs(CONF_SECTION const *server_cs); + /** Additional validation rules for virtual server lookup * * This is used to ensure that the virtual server we find matches