From: Alan T. DeKok Date: Fri, 24 Oct 2025 19:28:15 +0000 (-0400) Subject: define and use DICT_AUTOLOAD_TERMINATOR X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3c20476b10ca1835014341e488c6c9753e02ea2d;p=thirdparty%2Ffreeradius-server.git define and use DICT_AUTOLOAD_TERMINATOR C23 complains about { NULL } being used to initialize something. we should either use { }, or { .field = NULL } --- diff --git a/src/bin/dhcpclient.c b/src/bin/dhcpclient.c index 99524a1c92..31f49372f8 100644 --- a/src/bin/dhcpclient.c +++ b/src/bin/dhcpclient.c @@ -83,7 +83,7 @@ extern fr_dict_autoload_t dhcpclient_dict[]; fr_dict_autoload_t dhcpclient_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_dhcpv4, .proto = "dhcpv4" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_packet_type; @@ -97,7 +97,7 @@ fr_dict_attr_autoload_t dhcpclient_dict_attr[] = { { .out = &attr_dhcp_message_type, .name = "Message-Type", .type = FR_TYPE_UINT8, .dict = &dict_dhcpv4}, { .out = &attr_dhcp_dhcp_server_identifier, .name = "Server-Identifier", .type = FR_TYPE_IPV4_ADDR, .dict = &dict_dhcpv4 }, { .out = &attr_dhcp_your_ip_address, .name = "Your-IP-Address", .type = FR_TYPE_IPV4_ADDR, .dict = &dict_dhcpv4 }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_table_num_sorted_t const request_types[] = { diff --git a/src/bin/radclient-ng.c b/src/bin/radclient-ng.c index dfdb57d3f9..9dad5f97ba 100644 --- a/src/bin/radclient-ng.c +++ b/src/bin/radclient-ng.c @@ -110,7 +110,7 @@ extern fr_dict_autoload_t radclient_dict[]; fr_dict_autoload_t radclient_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_cleartext_password; @@ -152,7 +152,7 @@ fr_dict_attr_autoload_t radclient_dict_attr[] = { { .out = &attr_user_password, .name = "User-Password", .type = FR_TYPE_STRING, .dict = &dict_radius }, { .out = &attr_user_name, .name = "User-Name", .type = FR_TYPE_STRING, .dict = &dict_radius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static NEVER_RETURNS void usage(void) diff --git a/src/bin/radclient.c b/src/bin/radclient.c index 898a9d2c0e..cf9515931e 100644 --- a/src/bin/radclient.c +++ b/src/bin/radclient.c @@ -108,7 +108,7 @@ extern fr_dict_autoload_t radclient_dict[]; fr_dict_autoload_t radclient_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_cleartext_password; @@ -152,7 +152,7 @@ fr_dict_attr_autoload_t radclient_dict_attr[] = { { .out = &attr_user_name, .name = "User-Name", .type = FR_TYPE_STRING, .dict = &dict_radius }, { .out = &attr_proxy_state, .name = "Proxy-State", .type = FR_TYPE_OCTETS, .dict = &dict_radius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static NEVER_RETURNS void usage(void) diff --git a/src/bin/radsniff.c b/src/bin/radsniff.c index b635c22822..3ceab13e63 100644 --- a/src/bin/radsniff.c +++ b/src/bin/radsniff.c @@ -97,7 +97,7 @@ extern fr_dict_autoload_t radsniff_dict[]; fr_dict_autoload_t radsniff_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_packet_type; @@ -105,7 +105,7 @@ static fr_dict_attr_t const *attr_packet_type; extern fr_dict_attr_autoload_t radsniff_dict_attr[]; fr_dict_attr_autoload_t radsniff_dict_attr[] = { { .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_radius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static NEVER_RETURNS void usage(int status); diff --git a/src/bin/radsnmp.c b/src/bin/radsnmp.c index 61206de3c9..2dee14e788 100644 --- a/src/bin/radsnmp.c +++ b/src/bin/radsnmp.c @@ -102,7 +102,7 @@ extern fr_dict_autoload_t radsnmp_dict[]; fr_dict_autoload_t radsnmp_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_extended_attribute_1; @@ -120,7 +120,7 @@ fr_dict_attr_autoload_t radsnmp_dict_attr[] = { { .out = &attr_freeradius_snmp_type, .name = "FreeRADIUS-SNMP-Type", .type = FR_TYPE_UINT8, .dict = &dict_radius }, { .out = &attr_message_authenticator, .name = "Message-Authenticator", .type = FR_TYPE_OCTETS, .dict = &dict_radius }, { .out = &attr_vendor_specific, .name = "Vendor-Specific", .type = FR_TYPE_VSA, .dict = &dict_radius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static NEVER_RETURNS void usage(void) diff --git a/src/bin/unit_test_map.c b/src/bin/unit_test_map.c index 4dc328019e..62ad4c625e 100644 --- a/src/bin/unit_test_map.c +++ b/src/bin/unit_test_map.c @@ -52,7 +52,7 @@ extern fr_dict_autoload_t unit_test_module_dict[]; fr_dict_autoload_t unit_test_module_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; diff --git a/src/bin/unit_test_module.c b/src/bin/unit_test_module.c index ded787d602..ce50b75d7b 100644 --- a/src/bin/unit_test_module.c +++ b/src/bin/unit_test_module.c @@ -72,7 +72,7 @@ extern fr_dict_autoload_t unit_test_module_dict[]; fr_dict_autoload_t unit_test_module_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_protocol, .proto = "radius" }, /* hacked in-place with '-p protocol' */ - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_packet_type; @@ -83,7 +83,7 @@ fr_dict_attr_autoload_t unit_test_module_dict_attr[] = { { .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_protocol }, { .out = &attr_net, .name = "Net", .type = FR_TYPE_TLV, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /* diff --git a/src/lib/curl/base.c b/src/lib/curl/base.c index 6230cd5d44..771a0a9b16 100644 --- a/src/lib/curl/base.c +++ b/src/lib/curl/base.c @@ -39,12 +39,12 @@ static fr_dict_t const *dict_freeradius; /*internal dictionary for server*/ extern fr_dict_attr_autoload_t curl_attr[]; fr_dict_attr_autoload_t curl_attr[] = { { .out = &attr_tls_certificate, .name = "TLS-Certificate", .type = FR_TYPE_TLV, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_autoload_t curl_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_table_num_sorted_t const fr_curl_sslcode_table[] = { diff --git a/src/lib/eap/base.c b/src/lib/eap/base.c index a25f1c38ce..3b73026093 100644 --- a/src/lib/eap/base.c +++ b/src/lib/eap/base.c @@ -83,7 +83,7 @@ fr_dict_autoload_t eap_base_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, { .out = &dict_tls, .proto = "tls" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; fr_dict_attr_t const *attr_chbind_response_code; @@ -126,7 +126,7 @@ fr_dict_attr_autoload_t eap_base_dict_attr[] = { { .out = &attr_tls_min_version, .name = "Min-Version", .type = FR_TYPE_FLOAT32, .dict = &dict_tls }, { .out = &attr_tls_max_version, .name = "Max-Version", .type = FR_TYPE_FLOAT32, .dict = &dict_tls }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; void eap_packet_to_vp(TALLOC_CTX *ctx, fr_pair_list_t *list, eap_packet_raw_t const *eap) diff --git a/src/lib/eap_aka_sim/base.c b/src/lib/eap_aka_sim/base.c index 8fc2cb43c5..faad4433bc 100644 --- a/src/lib/eap_aka_sim/base.c +++ b/src/lib/eap_aka_sim/base.c @@ -53,7 +53,7 @@ fr_dict_autoload_t libfreeradius_aka_sim_dict[] = { { .out = &dict_radius, .proto = "radius" }, { .out = &dict_eap_aka_sim, .base_dir = "eap/aka-sim", .proto = "eap-aka-sim" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; fr_dict_attr_t const *attr_eap_aka_sim_ak; @@ -179,7 +179,7 @@ fr_dict_attr_autoload_t libfreeradius_aka_sim_dict_attr[] = { { .out = &attr_sim_op, .name = "SIM-OP", .type = FR_TYPE_OCTETS, .dict = &dict_freeradius }, { .out = &attr_sim_opc, .name = "SIM-OPc", .type = FR_TYPE_OCTETS, .dict = &dict_freeradius }, { .out = &attr_sim_sqn, .name = "SIM-SQN", .type = FR_TYPE_UINT64, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; fr_value_box_t const *enum_eap_type_sim; @@ -196,7 +196,7 @@ fr_dict_enum_autoload_t libfreeradius_aka_sim_dict_enum[] = { { .out = &enum_kdf_prime_with_ck_prime_ik_prime, .name = "Prime-With-CK-Prime-IK-Prime", .attr = &attr_eap_aka_sim_kdf }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /** SIM AT on-the-wire format attribute sizes diff --git a/src/lib/server/log.c b/src/lib/server/log.c index 4a77bb213a..1d75fcd03b 100644 --- a/src/lib/server/log.c +++ b/src/lib/server/log.c @@ -200,7 +200,7 @@ static fr_dict_t const *dict_freeradius; extern fr_dict_autoload_t log_dict[]; fr_dict_autoload_t log_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_module_failure_message; @@ -208,7 +208,7 @@ static fr_dict_attr_t const *attr_module_failure_message; extern fr_dict_attr_autoload_t log_dict_attr[]; fr_dict_attr_autoload_t log_dict_attr[] = { { .out = &attr_module_failure_message, .name = "Module-Failure-Message", .type = FR_TYPE_STRING, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; typedef struct { diff --git a/src/lib/server/packet.c b/src/lib/server/packet.c index c9a77b6d8e..d23eb9001e 100644 --- a/src/lib/server/packet.c +++ b/src/lib/server/packet.c @@ -33,7 +33,7 @@ static fr_dict_t const *dict_freeradius; extern fr_dict_autoload_t util_packet_dict[]; fr_dict_autoload_t util_packet_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_net; @@ -58,7 +58,7 @@ fr_dict_attr_autoload_t util_packet_dict_attr[] = { { .out = &attr_net_timestamp, .name = "Net.Timestamp", .type = FR_TYPE_DATE, .dict = &dict_freeradius }, { .out = &attr_net_interface, .name = "Net.Interface", .type = FR_TYPE_STRING, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static int inet2pairs(TALLOC_CTX *ctx, fr_pair_list_t *list, diff --git a/src/lib/server/password.c b/src/lib/server/password.c index 461707e1d7..a5820050e4 100644 --- a/src/lib/server/password.c +++ b/src/lib/server/password.c @@ -126,7 +126,7 @@ extern fr_dict_autoload_t password_dict[]; fr_dict_autoload_t password_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; extern fr_dict_attr_autoload_t password_dict_attr[]; @@ -174,7 +174,7 @@ fr_dict_attr_autoload_t password_dict_attr[] = { { .out = &attr_user, .name = "User-Password", .type = FR_TYPE_STRING, .dict = &dict_radius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; typedef enum { diff --git a/src/lib/server/request.c b/src/lib/server/request.c index 6d0a283701..3c45dc3a11 100644 --- a/src/lib/server/request.c +++ b/src/lib/server/request.c @@ -36,7 +36,7 @@ static fr_dict_t const *dict_freeradius; extern fr_dict_autoload_t request_dict[]; fr_dict_autoload_t request_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; fr_dict_attr_t const *request_attr_root; @@ -54,7 +54,7 @@ fr_dict_attr_autoload_t request_dict_attr[] = { { .out = &request_attr_control, .name = "control", .type = FR_TYPE_GROUP, .dict = &dict_freeradius }, { .out = &request_attr_state, .name = "session-state", .type = FR_TYPE_GROUP, .dict = &dict_freeradius }, { .out = &request_attr_local, .name = "local-variables", .type = FR_TYPE_GROUP, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; #ifndef NDEBUG diff --git a/src/lib/server/snmp.c b/src/lib/server/snmp.c index eda926ec56..bca60e5d63 100644 --- a/src/lib/server/snmp.c +++ b/src/lib/server/snmp.c @@ -45,7 +45,7 @@ static fr_dict_t const *dict_snmp; extern fr_dict_autoload_t snmp_dict[]; fr_dict_autoload_t snmp_dict[] = { { .out = &dict_snmp, .proto = "snmp" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_snmp_operation; @@ -59,7 +59,7 @@ fr_dict_attr_autoload_t snmp_dict_attr[] = { { .out = &attr_snmp_type, .name = "FreeRADIUS-SNMP-Type", .type = FR_TYPE_UINT8, .dict = &dict_snmp }, { .out = &attr_snmp_failure, .name = "FreeRADIUS-SNMP-Failure", .type = FR_TYPE_UINT8, .dict = &dict_snmp }, { .out = &attr_snmp_root, .name = "FreeRADIUS-Iso", .type = FR_TYPE_TLV, .dict = &dict_snmp }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; #define FR_FREERADIUS_SNMP_TYPE_OBJECT 0 diff --git a/src/lib/server/tmpl_eval.c b/src/lib/server/tmpl_eval.c index a370b09ca6..2cd598501f 100644 --- a/src/lib/server/tmpl_eval.c +++ b/src/lib/server/tmpl_eval.c @@ -46,7 +46,7 @@ extern fr_dict_autoload_t tmpl_dict[]; fr_dict_autoload_t tmpl_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, /* @todo - remove RADIUS from the server core... */ - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /** Placeholder attribute for uses of unspecified attribute references diff --git a/src/lib/server/trigger.c b/src/lib/server/trigger.c index 94ecb4f912..9df87034bd 100644 --- a/src/lib/server/trigger.c +++ b/src/lib/server/trigger.c @@ -61,14 +61,14 @@ static fr_dict_t const *dict_freeradius; extern fr_dict_autoload_t trigger_dict[]; fr_dict_autoload_t trigger_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_trigger_name; extern fr_dict_attr_autoload_t trigger_dict_attr[]; fr_dict_attr_autoload_t trigger_dict_attr[] = { { .out = &attr_trigger_name, .name = "Trigger-Name", .type = FR_TYPE_STRING, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static void _trigger_last_fired_free(void *data) diff --git a/src/lib/server/virtual_servers.c b/src/lib/server/virtual_servers.c index b2f1ef5994..43bcfa77fe 100644 --- a/src/lib/server/virtual_servers.c +++ b/src/lib/server/virtual_servers.c @@ -80,14 +80,14 @@ static fr_dict_attr_t const *attr_auth_type; extern fr_dict_autoload_t virtual_server_dict_autoload[]; fr_dict_autoload_t virtual_server_dict_autoload[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; extern fr_dict_attr_autoload_t virtual_server_dict_attr_autoload[]; fr_dict_attr_autoload_t virtual_server_dict_attr_autoload[] = { { .out = &attr_auth_type, .name = "Auth-Type", .type = FR_TYPE_UINT32, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /** List of process modules we've loaded diff --git a/src/lib/tls/base.c b/src/lib/tls/base.c index b6d004f11a..e7d456b326 100644 --- a/src/lib/tls/base.c +++ b/src/lib/tls/base.c @@ -82,7 +82,8 @@ fr_dict_autoload_t tls_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_tls, .proto = "tls" }, { .out = &dict_der, .proto = "der" }, - { NULL } + + DICT_AUTOLOAD_TERMINATOR }; fr_dict_attr_t const *attr_allow_session_resumption; @@ -184,7 +185,7 @@ fr_dict_attr_autoload_t tls_dict_attr[] = { { .out = &attr_der_certificate, .name = "Certificate", .type = FR_TYPE_TLV, .dict = &dict_der }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /* @@ -225,7 +226,8 @@ fr_dict_enum_autoload_t tls_dict_enum[] = { { .out = &enum_tls_session_resumed_stateful, .name = "stateful", .attr = &attr_tls_session_resume_type }, { .out = &enum_tls_session_resumed_stateless, .name = "stateless", .attr = &attr_tls_session_resume_type }, - { NULL } + + DICT_AUTOLOAD_TERMINATOR }; /* diff --git a/src/lib/unlang/xlat_eval.c b/src/lib/unlang/xlat_eval.c index 4ab9017e9f..84a74115c2 100644 --- a/src/lib/unlang/xlat_eval.c +++ b/src/lib/unlang/xlat_eval.c @@ -38,7 +38,7 @@ static fr_dict_t const *dict_freeradius; static fr_dict_autoload_t xlat_eval_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; fr_dict_attr_t const *attr_expr_bool_enum; /* xlat_expr.c */ @@ -72,7 +72,7 @@ static fr_dict_attr_autoload_t xlat_eval_dict_attr[] = { { .out = &attr_cast_time_res_usec, .name = "Cast-Time-Res-Micro-Sec", .type = FR_TYPE_TIME_DELTA, .dict = &dict_freeradius }, { .out = &attr_cast_time_res_nsec, .name = "Cast-Time-Res-Nano-Sec", .type = FR_TYPE_TIME_DELTA, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; fr_table_num_sorted_t const xlat_action_table[] = { diff --git a/src/lib/util/dict.h b/src/lib/util/dict.h index 88f32d57c6..295dfc8427 100644 --- a/src/lib/util/dict.h +++ b/src/lib/util/dict.h @@ -303,6 +303,9 @@ typedef struct { char const *proto; //!< The protocol dictionary name. } fr_dict_autoload_t; +#define DICT_AUTOLOAD_TERMINATOR { .out = NULL } + + /** Errors returned by attribute lookup functions * */ diff --git a/src/lib/util/dict_util.c b/src/lib/util/dict_util.c index 5500f6236a..08d89994e4 100644 --- a/src/lib/util/dict_util.c +++ b/src/lib/util/dict_util.c @@ -4370,7 +4370,7 @@ fr_dict_autoload_talloc_t *_fr_dict_autoload_talloc(TALLOC_CTX *ctx, fr_dict_t c } dict_ref->load[0] = (fr_dict_autoload_t){ .proto = proto, .out = out}; - dict_ref->load[1] = (fr_dict_autoload_t){ NULL }; + dict_ref->load[1] = (fr_dict_autoload_t) DICT_AUTOLOAD_TERMINATOR; dict_ref->dependent = talloc_strdup(dict_ref, dependent); if (unlikely(dict_ref->dependent == NULL)) { talloc_free(dict_ref); diff --git a/src/listen/arp/proto_arp.c b/src/listen/arp/proto_arp.c index e753063b1b..a1bd248f31 100644 --- a/src/listen/arp/proto_arp.c +++ b/src/listen/arp/proto_arp.c @@ -46,7 +46,7 @@ static fr_dict_t const *dict_arp; extern fr_dict_autoload_t proto_arp_dict[]; fr_dict_autoload_t proto_arp_dict[] = { { .out = &dict_arp, .proto = "arp" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; #if 0 @@ -55,7 +55,7 @@ static fr_dict_attr_t const *attr_packet_type; extern fr_dict_attr_autoload_t proto_arp_dict_attr[]; fr_dict_attr_autoload_t proto_arp_dict_attr[] = { { .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_arp}, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; #endif diff --git a/src/listen/bfd/proto_bfd.c b/src/listen/bfd/proto_bfd.c index ed276a6abd..c56bf894b0 100644 --- a/src/listen/bfd/proto_bfd.c +++ b/src/listen/bfd/proto_bfd.c @@ -62,7 +62,7 @@ static fr_dict_t const *dict_bfd; extern fr_dict_autoload_t proto_bfd_dict[]; fr_dict_autoload_t proto_bfd_dict[] = { { .out = &dict_bfd, .proto = "bfd" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_packet_type; @@ -80,7 +80,7 @@ fr_dict_attr_autoload_t proto_bfd_dict_attr[] = { { .out = &attr_your_discriminator, .name = "Packet.your-discriminator", .type = FR_TYPE_UINT32, .dict = &dict_bfd}, { .out = &attr_additional_data, .name = "Additional-Data", .type = FR_TYPE_GROUP, .dict = &dict_bfd}, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static int transport_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM *ci, conf_parser_t const *rule) diff --git a/src/listen/control/proto_control.c b/src/listen/control/proto_control.c index 02a03b73a0..ab889eaca8 100644 --- a/src/listen/control/proto_control.c +++ b/src/listen/control/proto_control.c @@ -63,7 +63,7 @@ static fr_dict_t const *dict_control; extern fr_dict_autoload_t proto_control_dict[]; fr_dict_autoload_t proto_control_dict[] = { { .out = &dict_control, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static int transport_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM *ci, conf_parser_t const *rule) diff --git a/src/listen/cron/cron.c b/src/listen/cron/cron.c index baeaa8eb5d..4543efed25 100644 --- a/src/listen/cron/cron.c +++ b/src/listen/cron/cron.c @@ -64,7 +64,7 @@ static fr_dict_t const *dict_cron; extern fr_dict_autoload_t proto_cron_dict[]; fr_dict_autoload_t proto_cron_dict[] = { { .out = &dict_cron, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /** Translates the packet-type into a submodule name diff --git a/src/listen/detail/proto_detail.c b/src/listen/detail/proto_detail.c index c30487d807..de798581e5 100644 --- a/src/listen/detail/proto_detail.c +++ b/src/listen/detail/proto_detail.c @@ -82,7 +82,7 @@ extern fr_dict_autoload_t proto_detail_dict[]; fr_dict_autoload_t proto_detail_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_packet_dst_ip_address; @@ -99,7 +99,7 @@ fr_dict_attr_autoload_t proto_detail_dict_attr[] = { { .out = &attr_packet_src_ip_address, .name = "Net.Src.IP", .type = FR_TYPE_COMBO_IP_ADDR, .dict = &dict_freeradius }, { .out = &attr_packet_src_port, .name = "Net.Src.Port", .type = FR_TYPE_UINT16, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /** Translates the packet-type into a submodule name diff --git a/src/listen/detail/proto_detail_work.c b/src/listen/detail/proto_detail_work.c index 7fb3d736cb..c9509d2ac3 100644 --- a/src/listen/detail/proto_detail_work.c +++ b/src/listen/detail/proto_detail_work.c @@ -98,7 +98,7 @@ extern fr_dict_autoload_t proto_detail_work_dict[]; fr_dict_autoload_t proto_detail_work_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_packet_transmit_counter; @@ -106,7 +106,7 @@ static fr_dict_attr_t const *attr_packet_transmit_counter; extern fr_dict_attr_autoload_t proto_detail_work_dict_attr[]; fr_dict_attr_autoload_t proto_detail_work_dict_attr[] = { { .out = &attr_packet_transmit_counter, .name = "Packet-Transmit-Counter", .type = FR_TYPE_UINT32, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /* diff --git a/src/listen/dhcpv4/proto_dhcpv4.c b/src/listen/dhcpv4/proto_dhcpv4.c index 2cd741e68c..d6b2a2d6ef 100644 --- a/src/listen/dhcpv4/proto_dhcpv4.c +++ b/src/listen/dhcpv4/proto_dhcpv4.c @@ -97,7 +97,7 @@ static fr_dict_t const *dict_dhcpv4; extern fr_dict_autoload_t proto_dhcpv4_dict[]; fr_dict_autoload_t proto_dhcpv4_dict[] = { { .out = &dict_dhcpv4, .proto = "dhcpv4" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_message_type; @@ -107,7 +107,7 @@ extern fr_dict_attr_autoload_t proto_dhcpv4_dict_attr[]; fr_dict_attr_autoload_t proto_dhcpv4_dict_attr[] = { { .out = &attr_message_type, .name = "Message-Type", .type = FR_TYPE_UINT8, .dict = &dict_dhcpv4}, { .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_dhcpv4}, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /** Translates the packet-type into a submodule name diff --git a/src/listen/dhcpv4/proto_dhcpv4_udp.c b/src/listen/dhcpv4/proto_dhcpv4_udp.c index 9cfb89fc4d..a30a5a1ed2 100644 --- a/src/listen/dhcpv4/proto_dhcpv4_udp.c +++ b/src/listen/dhcpv4/proto_dhcpv4_udp.c @@ -136,7 +136,7 @@ static fr_dict_t const *dict_dhcpv4; extern fr_dict_autoload_t proto_dhcpv4_udp_dict[]; fr_dict_autoload_t proto_dhcpv4_udp_dict[] = { { .out = &dict_dhcpv4, .proto = "dhcpv4" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_message_type; @@ -146,7 +146,7 @@ extern fr_dict_attr_autoload_t proto_dhcpv4_udp_dict_attr[]; fr_dict_attr_autoload_t proto_dhcpv4_udp_dict_attr[] = { { .out = &attr_message_type, .name = "Message-Type", .type = FR_TYPE_UINT8, .dict = &dict_dhcpv4}, { .out = &attr_dhcp_server_identifier, .name = "Server-Identifier", .type = FR_TYPE_IPV4_ADDR, .dict = &dict_dhcpv4}, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; #ifdef HAVE_LIBPCAP diff --git a/src/listen/dhcpv6/proto_dhcpv6.c b/src/listen/dhcpv6/proto_dhcpv6.c index b536b24e09..3acbad60f9 100644 --- a/src/listen/dhcpv6/proto_dhcpv6.c +++ b/src/listen/dhcpv6/proto_dhcpv6.c @@ -97,7 +97,7 @@ static fr_dict_t const *dict_dhcpv6; extern fr_dict_autoload_t proto_dhcpv6_dict[]; fr_dict_autoload_t proto_dhcpv6_dict[] = { { .out = &dict_dhcpv6, .proto = "dhcpv6" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_packet_type; @@ -107,7 +107,7 @@ extern fr_dict_attr_autoload_t proto_dhcpv6_dict_attr[]; fr_dict_attr_autoload_t proto_dhcpv6_dict_attr[] = { { .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_dhcpv6}, { .out = &attr_client_id, .name = "Client-Id", .type = FR_TYPE_STRUCT, .dict = &dict_dhcpv6}, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /** Translates the packet-type into a submodule name diff --git a/src/listen/dhcpv6/proto_dhcpv6_udp.c b/src/listen/dhcpv6/proto_dhcpv6_udp.c index 3535e3ed31..49302eed29 100644 --- a/src/listen/dhcpv6/proto_dhcpv6_udp.c +++ b/src/listen/dhcpv6/proto_dhcpv6_udp.c @@ -113,7 +113,7 @@ static fr_dict_t const *dict_dhcpv6; extern fr_dict_autoload_t proto_dhcpv6_udp_dict[]; fr_dict_autoload_t proto_dhcpv6_udp_dict[] = { { .out = &dict_dhcpv6, .proto = "dhcpv6" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_packet_type; @@ -125,7 +125,7 @@ fr_dict_attr_autoload_t proto_dhcpv6_udp_dict_attr[] = { { .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_dhcpv6}, { .out = &attr_client_id, .name = "Client-ID", .type = FR_TYPE_STRUCT, .dict = &dict_dhcpv6}, { .out = &attr_relay_message, .name = "Relay-Message", .type = FR_TYPE_GROUP, .dict = &dict_dhcpv6 }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static ssize_t mod_read(fr_listen_t *li, void **packet_ctx, fr_time_t *recv_time_p, uint8_t *buffer, size_t buffer_len, diff --git a/src/listen/dns/proto_dns.c b/src/listen/dns/proto_dns.c index c47f949ccb..66723faddf 100644 --- a/src/listen/dns/proto_dns.c +++ b/src/listen/dns/proto_dns.c @@ -72,7 +72,7 @@ static fr_dict_t const *dict_dns; extern fr_dict_autoload_t proto_dns_dict[]; fr_dict_autoload_t proto_dns_dict[] = { { .out = &dict_dns, .proto = "dns" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_packet_type; @@ -80,7 +80,7 @@ static fr_dict_attr_t const *attr_packet_type; extern fr_dict_attr_autoload_t proto_dns_dict_attr[]; fr_dict_attr_autoload_t proto_dns_dict_attr[] = { { .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_dns}, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /** Translates the packet-type into a submodule name diff --git a/src/listen/dns/proto_dns_udp.c b/src/listen/dns/proto_dns_udp.c index 02cf550ea7..75c0a06901 100644 --- a/src/listen/dns/proto_dns_udp.c +++ b/src/listen/dns/proto_dns_udp.c @@ -102,7 +102,7 @@ static fr_dict_t const *dict_dns; extern fr_dict_autoload_t proto_dns_udp_dict[]; fr_dict_autoload_t proto_dns_udp_dict[] = { { .out = &dict_dns, .proto = "dns" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_packet_type; @@ -111,7 +111,7 @@ extern fr_dict_attr_autoload_t proto_dns_udp_dict_attr[]; fr_dict_attr_autoload_t proto_dns_udp_dict_attr[] = { { .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_dns}, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static ssize_t mod_read(fr_listen_t *li, void **packet_ctx, fr_time_t *recv_time_p, uint8_t *buffer, size_t buffer_len, diff --git a/src/listen/ldap_sync/proto_ldap_sync.c b/src/listen/ldap_sync/proto_ldap_sync.c index 68e24157df..b9658b95fa 100644 --- a/src/listen/ldap_sync/proto_ldap_sync.c +++ b/src/listen/ldap_sync/proto_ldap_sync.c @@ -70,7 +70,7 @@ static fr_dict_t const *dict_ldap_sync; extern fr_dict_autoload_t proto_ldap_sync_dict[]; fr_dict_autoload_t proto_ldap_sync_dict[] = { { .out = &dict_ldap_sync, .proto = "ldap" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_ldap_sync_packet_id; @@ -90,7 +90,7 @@ fr_dict_attr_autoload_t proto_ldap_sync_dict_attr[] = { { .out = &attr_ldap_sync_scope, .name = "LDAP-Sync.Scope", .type = FR_TYPE_UINT32, .dict = &dict_ldap_sync }, { .out = &attr_ldap_sync_filter, .name = "LDAP-Sync.Filter", .type = FR_TYPE_STRING, .dict = &dict_ldap_sync }, { .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_ldap_sync }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /** Check if an attribute is in the config list and add if not present diff --git a/src/listen/ldap_sync/proto_ldap_sync_ldap.c b/src/listen/ldap_sync/proto_ldap_sync_ldap.c index b8f3ba8ef1..10db36e787 100644 --- a/src/listen/ldap_sync/proto_ldap_sync_ldap.c +++ b/src/listen/ldap_sync/proto_ldap_sync_ldap.c @@ -73,7 +73,7 @@ extern fr_dict_autoload_t proto_ldap_sync_ldap_dict[]; fr_dict_autoload_t proto_ldap_sync_ldap_dict[] = { { .out = &dict_ldap_sync, .proto = "ldap" }, { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_ldap_sync_packet_id; @@ -95,7 +95,7 @@ fr_dict_attr_autoload_t proto_ldap_sync_ldap_dict_attr[] = { { .out = &attr_ldap_sync_root_dn, .name = "LDAP-Sync.Directory-Root-DN", .type = FR_TYPE_STRING, .dict = &dict_ldap_sync }, { .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_ldap_sync }, { .out = &attr_ldap_sync_base_dn, .name = "LDAP-Sync-Base-DN", .type = FR_TYPE_STRING, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; extern global_lib_autoinst_t const *proto_ldap_sync_ldap_lib[]; diff --git a/src/listen/radius/proto_radius.c b/src/listen/radius/proto_radius.c index bc96532161..cbb31738c9 100644 --- a/src/listen/radius/proto_radius.c +++ b/src/listen/radius/proto_radius.c @@ -111,7 +111,7 @@ static fr_dict_t const *dict_radius; extern fr_dict_autoload_t proto_radius_dict[]; fr_dict_autoload_t proto_radius_dict[] = { { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_packet_type; @@ -133,7 +133,7 @@ fr_dict_attr_autoload_t proto_radius_dict_attr[] = { { .out = &attr_eap_message, .name = "EAP-Message", .type = FR_TYPE_OCTETS, .dict = &dict_radius}, { .out = &attr_packet_id, .name = "Packet.Id", .type = FR_TYPE_UINT8, .dict = &dict_radius}, { .out = &attr_packet_authenticator, .name = "Packet.Authenticator", .type = FR_TYPE_OCTETS, .dict = &dict_radius}, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /** Translates the packet-type into a submodule name diff --git a/src/listen/tacacs/proto_tacacs.c b/src/listen/tacacs/proto_tacacs.c index a9a1e73c9a..fb6ac99d3f 100644 --- a/src/listen/tacacs/proto_tacacs.c +++ b/src/listen/tacacs/proto_tacacs.c @@ -79,7 +79,7 @@ static fr_dict_t const *dict_tacacs; extern fr_dict_autoload_t proto_tacacs_dict[]; fr_dict_autoload_t proto_tacacs_dict[] = { { .out = &dict_tacacs, .proto = "tacacs" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; @@ -90,7 +90,7 @@ extern fr_dict_attr_autoload_t proto_tacacs_dict_attr[]; fr_dict_attr_autoload_t proto_tacacs_dict_attr[] = { { .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_tacacs}, { .out = &attr_tacacs_user_name, .name = "User-Name", .type = FR_TYPE_STRING, .dict = &dict_tacacs }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static int transport_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM *ci, conf_parser_t const *rule) diff --git a/src/listen/vmps/proto_vmps.c b/src/listen/vmps/proto_vmps.c index 5c5d2b02f1..982f065251 100644 --- a/src/listen/vmps/proto_vmps.c +++ b/src/listen/vmps/proto_vmps.c @@ -77,7 +77,7 @@ static fr_dict_t const *dict_vmps; extern fr_dict_autoload_t proto_vmps_dict[]; fr_dict_autoload_t proto_vmps_dict[] = { { .out = &dict_vmps, .proto = "vmps" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_packet_type; @@ -85,7 +85,7 @@ static fr_dict_attr_t const *attr_packet_type; extern fr_dict_attr_autoload_t proto_vmps_dict_attr[]; fr_dict_attr_autoload_t proto_vmps_dict_attr[] = { { .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_vmps}, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /** Translates the packet-type into a submodule name diff --git a/src/modules/rlm_attr_filter/rlm_attr_filter.c b/src/modules/rlm_attr_filter/rlm_attr_filter.c index 2863228095..a57acfa125 100644 --- a/src/modules/rlm_attr_filter/rlm_attr_filter.c +++ b/src/modules/rlm_attr_filter/rlm_attr_filter.c @@ -63,7 +63,7 @@ extern fr_dict_autoload_t rlm_attr_filter_dict[]; fr_dict_autoload_t rlm_attr_filter_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_stripped_user_name; @@ -79,7 +79,7 @@ fr_dict_attr_autoload_t rlm_attr_filter_dict_attr[] = { { .out = &attr_relax_filter, .name = "Relax-Filter", .type = FR_TYPE_BOOL, .dict = &dict_freeradius }, { .out = &attr_vendor_specific, .name = "Vendor-Specific", .type = FR_TYPE_VSA, .dict = &dict_radius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static const call_env_method_t attr_filter_env = { diff --git a/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c b/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c index b6d04492df..b23fe6d077 100644 --- a/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c +++ b/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c @@ -50,7 +50,7 @@ static fr_dict_t const *dict_freeradius; extern fr_dict_autoload_t rlm_cache_redis_dict[]; fr_dict_autoload_t rlm_cache_redis_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_cache_created; @@ -60,7 +60,7 @@ extern fr_dict_attr_autoload_t rlm_cache_redis_dict_attr[]; fr_dict_attr_autoload_t rlm_cache_redis_dict_attr[] = { { .out = &attr_cache_created, .name = "Cache-Created", .type = FR_TYPE_DATE, .dict = &dict_freeradius }, { .out = &attr_cache_expires, .name = "Cache-Expires", .type = FR_TYPE_DATE, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /** Create a new rlm_cache_redis instance diff --git a/src/modules/rlm_cache/rlm_cache.c b/src/modules/rlm_cache/rlm_cache.c index 6270bfb420..bbf24f0079 100644 --- a/src/modules/rlm_cache/rlm_cache.c +++ b/src/modules/rlm_cache/rlm_cache.c @@ -84,7 +84,7 @@ static fr_dict_t const *dict_freeradius; extern fr_dict_autoload_t rlm_cache_dict[]; fr_dict_autoload_t rlm_cache_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_cache_merge_new; @@ -102,7 +102,7 @@ fr_dict_attr_autoload_t rlm_cache_dict_attr[] = { { .out = &attr_cache_allow_insert, .name = "Cache-Allow-Insert", .type = FR_TYPE_BOOL, .dict = &dict_freeradius }, { .out = &attr_cache_ttl, .name = "Cache-TTL", .type = FR_TYPE_INT32, .dict = &dict_freeradius }, { .out = &attr_cache_entry_hits, .name = "Cache-Entry-Hits", .type = FR_TYPE_UINT32, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; int submodule_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM *ci, conf_parser_t const *rule) diff --git a/src/modules/rlm_chap/rlm_chap.c b/src/modules/rlm_chap/rlm_chap.c index faeabd8f39..d4793609c5 100644 --- a/src/modules/rlm_chap/rlm_chap.c +++ b/src/modules/rlm_chap/rlm_chap.c @@ -109,7 +109,7 @@ static fr_dict_t const *dict_freeradius; extern fr_dict_autoload_t rlm_chap_dict[]; fr_dict_autoload_t rlm_chap_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_auth_type; @@ -120,7 +120,7 @@ fr_dict_attr_autoload_t rlm_chap_dict_attr[] = { { .out = &attr_auth_type, .name = "Auth-Type", .type = FR_TYPE_UINT32, .dict = &dict_freeradius }, { .out = &attr_cleartext_password, .name = "Password.Cleartext", .type = FR_TYPE_STRING, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static xlat_arg_parser_t const xlat_func_chap_password_args[] = { diff --git a/src/modules/rlm_crl/rlm_crl.c b/src/modules/rlm_crl/rlm_crl.c index 60f30d0a66..1e670b5d76 100644 --- a/src/modules/rlm_crl/rlm_crl.c +++ b/src/modules/rlm_crl/rlm_crl.c @@ -118,7 +118,7 @@ static fr_dict_t const *dict_freeradius; extern fr_dict_autoload_t rlm_crl_dict[]; fr_dict_autoload_t rlm_crl_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_crl_data; @@ -128,7 +128,7 @@ extern fr_dict_attr_autoload_t rlm_crl_dict_attr[]; fr_dict_attr_autoload_t rlm_crl_dict_attr[] = { { .out = &attr_crl_data, .name = "CRL.Data", .type = FR_TYPE_OCTETS, .dict = &dict_freeradius }, { .out = &attr_crl_cdp_url, .name = "CRL.CDP-URL", .type = FR_TYPE_STRING, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; typedef struct { diff --git a/src/modules/rlm_detail/rlm_detail.c b/src/modules/rlm_detail/rlm_detail.c index c0928e39b4..c9507c96d1 100644 --- a/src/modules/rlm_detail/rlm_detail.c +++ b/src/modules/rlm_detail/rlm_detail.c @@ -90,7 +90,7 @@ extern fr_dict_autoload_t rlm_detail_dict[]; fr_dict_autoload_t rlm_detail_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_net; @@ -107,7 +107,7 @@ fr_dict_attr_autoload_t rlm_detail_dict_attr[] = { { .out = &attr_net_src_address, .name = "Net.Src.IP", .type = FR_TYPE_COMBO_IP_ADDR, .dict = &dict_freeradius }, { .out = &attr_net_src_port, .name = "Net.Src.Port", .type = FR_TYPE_UINT16, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /** Print one attribute and value to FP diff --git a/src/modules/rlm_dhcpv4/rlm_dhcpv4.c b/src/modules/rlm_dhcpv4/rlm_dhcpv4.c index 86d6491cc7..2ee81949f6 100644 --- a/src/modules/rlm_dhcpv4/rlm_dhcpv4.c +++ b/src/modules/rlm_dhcpv4/rlm_dhcpv4.c @@ -38,7 +38,7 @@ extern fr_dict_autoload_t rlm_dhcpv4_dict[]; fr_dict_autoload_t rlm_dhcpv4_dict[] = { { .out = &dict_dhcpv4, .proto = "dhcpv4" }, { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_transaction_id; @@ -56,7 +56,7 @@ fr_dict_attr_autoload_t rlm_dhcpv4_dict_attr[] = { { .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_dhcpv4 }, { .out = &attr_net_dst_ip, .name = "Net.Dst.IP", .type = FR_TYPE_COMBO_IP_ADDR, .dict = &dict_freeradius }, { .out = &attr_net_dst_port, .name = "Net.Dst.Port", .type = FR_TYPE_UINT16, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; diff --git a/src/modules/rlm_digest/rlm_digest.c b/src/modules/rlm_digest/rlm_digest.c index 1dcf53ccac..2fa2a57479 100644 --- a/src/modules/rlm_digest/rlm_digest.c +++ b/src/modules/rlm_digest/rlm_digest.c @@ -41,7 +41,7 @@ extern fr_dict_autoload_t rlm_digest_dict[]; fr_dict_autoload_t rlm_digest_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static const fr_dict_attr_t *attr_auth_type; @@ -80,7 +80,7 @@ fr_dict_attr_autoload_t rlm_digest_dict_attr[] = { { .out = &attr_digest_uri, .name = "Digest-Attributes.Uri", .type = FR_TYPE_STRING, .dict = &dict_radius }, { .out = &attr_digest_user_name, .name = "Digest-Attributes.User-Name", .type = FR_TYPE_STRING, .dict = &dict_radius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static unlang_action_t CC_HINT(nonnull) mod_authorize(unlang_result_t *p_result, module_ctx_t const *mctx, request_t *request) diff --git a/src/modules/rlm_dpsk/rlm_dpsk.c b/src/modules/rlm_dpsk/rlm_dpsk.c index 1f80c6de46..47dc05b5d0 100644 --- a/src/modules/rlm_dpsk/rlm_dpsk.c +++ b/src/modules/rlm_dpsk/rlm_dpsk.c @@ -129,7 +129,7 @@ static fr_dict_t const *dict_freeradius; extern fr_dict_autoload_t rlm_dpsk_dict[]; fr_dict_autoload_t rlm_dpsk_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_auth_type; @@ -138,7 +138,7 @@ extern fr_dict_attr_autoload_t rlm_dpsk_dict_attr[]; fr_dict_attr_autoload_t rlm_dpsk_dict_attr[] = { { .out = &attr_auth_type, .name = "Auth-Type", .type = FR_TYPE_UINT32, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static const conf_parser_t module_config[] = { diff --git a/src/modules/rlm_eap/rlm_eap.c b/src/modules/rlm_eap/rlm_eap.c index 05c2ac08f1..fa78a6e47a 100644 --- a/src/modules/rlm_eap/rlm_eap.c +++ b/src/modules/rlm_eap/rlm_eap.c @@ -86,7 +86,7 @@ extern fr_dict_autoload_t rlm_eap_dict[]; fr_dict_autoload_t rlm_eap_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_auth_type; @@ -114,7 +114,7 @@ fr_dict_attr_autoload_t rlm_eap_dict_attr[] = { { .out = &attr_state, .name = "State", .type = FR_TYPE_OCTETS, .dict = &dict_radius }, { .out = &attr_user_name, .name = "User-Name", .type = FR_TYPE_STRING, .dict = &dict_radius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static unlang_action_t mod_authenticate(unlang_result_t *p_result, module_ctx_t const *mctx, request_t *request) CC_HINT(nonnull); diff --git a/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c b/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c index 756481694e..299f97da54 100644 --- a/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c +++ b/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c @@ -92,7 +92,7 @@ fr_dict_autoload_t rlm_eap_fast_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, { .out = &dict_eap_fast, .base_dir = "eap/fast", .proto = "eap-fast" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_eap_emsk; @@ -181,7 +181,7 @@ fr_dict_attr_autoload_t rlm_eap_fast_dict_attr[] = { { .out = &attr_eap_fast_result, .name = "Result", .type = FR_TYPE_UINT16, .dict = &dict_eap_fast }, { .out = &attr_eap_fast_vendor_specific, .name = "Vendor-Specific", .type = FR_TYPE_OCTETS, .dict = &dict_eap_fast }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; #define RANDFILL(x) do { fr_assert(sizeof(x) % sizeof(uint32_t) == 0); for (size_t i = 0; i < sizeof(x); i += sizeof(uint32_t)) *((uint32_t *)&x[i]) = fr_rand(); } while(0) diff --git a/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c b/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c index da665bd093..5518a2afc8 100644 --- a/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c +++ b/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c @@ -60,7 +60,7 @@ extern fr_dict_autoload_t rlm_eap_gtc_dict[]; fr_dict_autoload_t rlm_eap_gtc_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_auth_type; @@ -70,7 +70,7 @@ extern fr_dict_attr_autoload_t rlm_eap_gtc_dict_attr[]; fr_dict_attr_autoload_t rlm_eap_gtc_dict_attr[] = { { .out = &attr_auth_type, .name = "Auth-Type", .type = FR_TYPE_UINT32, .dict = &dict_freeradius }, { .out = &attr_user_password, .name = "User-Password", .type = FR_TYPE_STRING, .dict = &dict_radius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static unlang_action_t mod_session_init(unlang_result_t *p_result, module_ctx_t const *mctx, request_t *request); diff --git a/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c b/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c index 7c544449ac..788c34ddb0 100644 --- a/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c +++ b/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c @@ -35,7 +35,7 @@ static fr_dict_t const *dict_freeradius; extern fr_dict_autoload_t rlm_eap_md5_dict[]; fr_dict_autoload_t rlm_eap_md5_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_cleartext_password; @@ -43,7 +43,7 @@ static fr_dict_attr_t const *attr_cleartext_password; extern fr_dict_attr_autoload_t rlm_eap_md5_dict_attr[]; fr_dict_attr_autoload_t rlm_eap_md5_dict_attr[] = { { .out = &attr_cleartext_password, .name = "Password.Cleartext", .type = FR_TYPE_STRING, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /* diff --git a/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c b/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c index 6eba0a622b..1d982ee5f6 100644 --- a/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c +++ b/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c @@ -63,7 +63,7 @@ extern fr_dict_autoload_t rlm_eap_mschapv2_dict[]; fr_dict_autoload_t rlm_eap_mschapv2_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_auth_type; @@ -105,7 +105,7 @@ fr_dict_attr_autoload_t rlm_eap_mschapv2_dict_attr[] = { { .out = &attr_ms_mppe_recv_key, .name = "Vendor-Specific.Microsoft.MPPE-Recv-Key", .type = FR_TYPE_OCTETS, .dict = &dict_radius }, { .out = &attr_state, .name = "State", .type = FR_TYPE_OCTETS, .dict = &dict_radius }, { .out = &attr_user_name, .name = "User-Name", .type = FR_TYPE_STRING, .dict = &dict_radius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static void mppe_keys_store(request_t *request, mschapv2_opaque_t *data) diff --git a/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c b/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c index 09eed869b3..d879b54d9a 100644 --- a/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c +++ b/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c @@ -96,7 +96,7 @@ extern fr_dict_autoload_t rlm_eap_peap_dict[]; fr_dict_autoload_t rlm_eap_peap_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; fr_dict_attr_t const *attr_auth_type; @@ -112,7 +112,7 @@ fr_dict_attr_autoload_t rlm_eap_peap_dict_attr[] = { { .out = &attr_eap_message, .name = "EAP-Message", .type = FR_TYPE_OCTETS, .dict = &dict_radius }, { .out = &attr_user_name, .name = "User-Name", .type = FR_TYPE_STRING, .dict = &dict_radius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; diff --git a/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c b/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c index e6e469f6bf..429f7b06c8 100644 --- a/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c +++ b/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c @@ -65,7 +65,7 @@ extern fr_dict_autoload_t rlm_eap_pwd_dict[]; fr_dict_autoload_t rlm_eap_pwd_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_cleartext_password; @@ -79,7 +79,7 @@ fr_dict_attr_autoload_t rlm_eap_pwd_dict_attr[] = { { .out = &attr_framed_mtu, .name = "Framed-MTU", .type = FR_TYPE_UINT32, .dict = &dict_radius }, { .out = &attr_ms_mppe_send_key, .name = "Vendor-Specific.Microsoft.MPPE-Send-Key", .type = FR_TYPE_OCTETS, .dict = &dict_radius }, { .out = &attr_ms_mppe_recv_key, .name = "Vendor-Specific.Microsoft.MPPE-Recv-Key", .type = FR_TYPE_OCTETS, .dict = &dict_radius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static int send_pwd_request(request_t *request, pwd_session_t *session, eap_round_t *eap_round) diff --git a/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c b/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c index 9811b83572..1ac0d9c629 100644 --- a/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c +++ b/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c @@ -55,7 +55,7 @@ static fr_dict_t const *dict_freeradius; extern fr_dict_autoload_t rlm_eap_tls_dict[]; fr_dict_autoload_t rlm_eap_tls_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_eap_tls_require_client_cert; @@ -63,7 +63,7 @@ static fr_dict_attr_t const *attr_eap_tls_require_client_cert; extern fr_dict_attr_autoload_t rlm_eap_tls_dict_attr[]; fr_dict_attr_autoload_t rlm_eap_tls_dict_attr[] = { { .out = &attr_eap_tls_require_client_cert, .name = "EAP-TLS-Require-Client-Cert", .type = FR_TYPE_UINT32, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static unlang_action_t mod_handshake_done(unlang_result_t *p_result, UNUSED module_ctx_t const *mctx, diff --git a/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c b/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c index 2df37f0e54..71d4f4ebe1 100644 --- a/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c +++ b/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c @@ -88,7 +88,7 @@ extern fr_dict_autoload_t rlm_eap_ttls_dict[]; fr_dict_autoload_t rlm_eap_ttls_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_eap_tls_require_client_cert; @@ -116,7 +116,7 @@ fr_dict_attr_autoload_t rlm_eap_ttls_dict_attr[] = { { .out = &attr_user_name, .name = "User-Name", .type = FR_TYPE_STRING, .dict = &dict_radius }, { .out = &attr_user_password, .name = "User-Password", .type = FR_TYPE_STRING, .dict = &dict_radius }, { .out = &attr_vendor_specific, .name = "Vendor-Specific", .type = FR_TYPE_VSA, .dict = &dict_radius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; diff --git a/src/modules/rlm_files/rlm_files.c b/src/modules/rlm_files/rlm_files.c index a0075ab853..0ab24c547f 100644 --- a/src/modules/rlm_files/rlm_files.c +++ b/src/modules/rlm_files/rlm_files.c @@ -64,7 +64,7 @@ static fr_dict_t const *dict_freeradius; extern fr_dict_autoload_t rlm_files_dict[]; fr_dict_autoload_t rlm_files_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_fall_through; @@ -75,7 +75,7 @@ fr_dict_attr_autoload_t rlm_files_dict_attr[] = { { .out = &attr_fall_through, .name = "Fall-Through", .type = FR_TYPE_BOOL, .dict = &dict_freeradius }, { .out = &attr_next_shortest_prefix, .name = "Next-Shortest-Prefix", .type = FR_TYPE_BOOL, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static const conf_parser_t module_config[] = { diff --git a/src/modules/rlm_imap/rlm_imap.c b/src/modules/rlm_imap/rlm_imap.c index 3c2d33f3f1..5da2770377 100644 --- a/src/modules/rlm_imap/rlm_imap.c +++ b/src/modules/rlm_imap/rlm_imap.c @@ -38,14 +38,14 @@ static fr_dict_attr_t const *attr_user_name; extern fr_dict_autoload_t rlm_imap_dict[]; fr_dict_autoload_t rlm_imap_dict[] = { { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; extern fr_dict_attr_autoload_t rlm_imap_dict_attr[]; fr_dict_attr_autoload_t rlm_imap_dict_attr[] = { { .out = &attr_user_name, .name = "User-Name", .type = FR_TYPE_STRING, .dict = &dict_radius }, { .out = &attr_user_password, .name = "User-Password", .type = FR_TYPE_STRING, .dict = &dict_radius }, - { NULL }, + DICT_AUTOLOAD_TERMINATOR, }; extern global_lib_autoinst_t const * const rlm_imap_lib[]; diff --git a/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c b/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c index cda22f99fe..27a9df9782 100644 --- a/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c +++ b/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c @@ -37,7 +37,7 @@ static fr_dict_t const *dict_dhcpv4; extern fr_dict_autoload_t rlm_isc_dhcp_dict[]; fr_dict_autoload_t rlm_isc_dhcp_dict[] = { { .out = &dict_dhcpv4, .proto = "dhcpv4" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_client_hardware_address; @@ -58,7 +58,7 @@ fr_dict_attr_autoload_t rlm_isc_dhcp_dict_attr[] = { { .out = &attr_server_ip_address, .name = "Server-IP-Address", .type = FR_TYPE_IPV4_ADDR, .dict = &dict_dhcpv4}, { .out = &attr_server_identifier, .name = "Server-Identifier", .type = FR_TYPE_IPV4_ADDR, .dict = &dict_dhcpv4}, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; typedef struct rlm_isc_dhcp_info_s rlm_isc_dhcp_info_t; diff --git a/src/modules/rlm_ldap/rlm_ldap.c b/src/modules/rlm_ldap/rlm_ldap.c index 3b45bd3f9f..78556eb336 100644 --- a/src/modules/rlm_ldap/rlm_ldap.c +++ b/src/modules/rlm_ldap/rlm_ldap.c @@ -319,7 +319,7 @@ static fr_dict_t const *dict_freeradius; extern fr_dict_autoload_t rlm_ldap_dict[]; fr_dict_autoload_t rlm_ldap_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; fr_dict_attr_t const *attr_password; @@ -340,7 +340,7 @@ fr_dict_attr_autoload_t rlm_ldap_dict_attr[] = { { .out = &attr_password_with_header, .name = "Password.With-Header", .type = FR_TYPE_STRING, .dict = &dict_freeradius }, { .out = &attr_expr_bool_enum, .name = "Expr-Bool-Enum", .type = FR_TYPE_BOOL, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; extern global_lib_autoinst_t const *rlm_ldap_lib[]; diff --git a/src/modules/rlm_logtee/rlm_logtee.c b/src/modules/rlm_logtee/rlm_logtee.c index a0ab1cf417..e1830727f1 100644 --- a/src/modules/rlm_logtee/rlm_logtee.c +++ b/src/modules/rlm_logtee/rlm_logtee.c @@ -181,7 +181,7 @@ static fr_dict_t const *dict_freeradius; extern fr_dict_autoload_t rlm_logtee_dict[]; fr_dict_autoload_t rlm_logtee_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_log_level; @@ -193,7 +193,7 @@ fr_dict_attr_autoload_t rlm_logtee_dict_attr[] = { { .out = &attr_log_level, .name = "Log-Level", .type = FR_TYPE_UINT32, .dict = &dict_freeradius }, { .out = &attr_log_message, .name = "Log-Message", .type = FR_TYPE_STRING, .dict = &dict_freeradius }, { .out = &attr_log_type, .name = "Log-Type", .type = FR_TYPE_UINT32, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static void logtee_fd_idle(rlm_logtee_thread_t *t); diff --git a/src/modules/rlm_mschap/rlm_mschap.c b/src/modules/rlm_mschap/rlm_mschap.c index 16aacf4c3e..420f8e4ddc 100644 --- a/src/modules/rlm_mschap/rlm_mschap.c +++ b/src/modules/rlm_mschap/rlm_mschap.c @@ -227,7 +227,7 @@ extern fr_dict_autoload_t rlm_mschap_dict[]; fr_dict_autoload_t rlm_mschap_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; fr_dict_attr_t const *attr_auth_type; @@ -256,7 +256,7 @@ fr_dict_attr_autoload_t rlm_mschap_dict_attr[] = { { .out = &attr_smb_account_ctrl_text, .name = "SMB-Account-Ctrl-Text", .type = FR_TYPE_STRING, .dict = &dict_freeradius }, { .out = &attr_smb_account_ctrl, .name = "SMB-Account-Ctrl", .type = FR_TYPE_UINT32, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_pair_t *mschap_identity_find(request_t *request, fr_dict_attr_t const *attr_user_name) diff --git a/src/modules/rlm_opendirectory/rlm_opendirectory.c b/src/modules/rlm_opendirectory/rlm_opendirectory.c index 12802c974b..39d5777d04 100644 --- a/src/modules/rlm_opendirectory/rlm_opendirectory.c +++ b/src/modules/rlm_opendirectory/rlm_opendirectory.c @@ -67,7 +67,7 @@ extern fr_dict_autoload_t rlm_opendirectory_dict[]; fr_dict_autoload_t rlm_opendirectory_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_auth_type; @@ -79,7 +79,7 @@ fr_dict_attr_autoload_t rlm_opendirectory_dict_attr[] = { { .out = &attr_auth_type, .name = "Auth-Type", .type = FR_TYPE_UINT32, .dict = &dict_freeradius }, { .out = &attr_user_name, .name = "User-Name", .type = FR_TYPE_STRING, .dict = &dict_radius }, { .out = &attr_user_password, .name = "User-Password", .type = FR_TYPE_STRING, .dict = &dict_radius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /* diff --git a/src/modules/rlm_pam/rlm_pam.c b/src/modules/rlm_pam/rlm_pam.c index 2077e46e7c..3036db41ad 100644 --- a/src/modules/rlm_pam/rlm_pam.c +++ b/src/modules/rlm_pam/rlm_pam.c @@ -70,7 +70,7 @@ extern fr_dict_autoload_t rlm_pam_dict[]; fr_dict_autoload_t rlm_pam_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_pam_auth; @@ -82,7 +82,7 @@ fr_dict_attr_autoload_t rlm_pam_dict_attr[] = { { .out = &attr_pam_auth, .name = "Pam-Auth", .type = FR_TYPE_STRING, .dict = &dict_freeradius }, { .out = &attr_user_name, .name = "User-Name", .type = FR_TYPE_STRING, .dict = &dict_radius }, { .out = &attr_user_password, .name = "User-Password", .type = FR_TYPE_STRING, .dict = &dict_radius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static int mod_instantiate(module_inst_ctx_t const *mctx) diff --git a/src/modules/rlm_pap/rlm_pap.c b/src/modules/rlm_pap/rlm_pap.c index 2e4d15bf96..d0678626e9 100644 --- a/src/modules/rlm_pap/rlm_pap.c +++ b/src/modules/rlm_pap/rlm_pap.c @@ -103,7 +103,7 @@ static fr_dict_t const *dict_freeradius; static fr_dict_autoload_t rlm_pap_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_auth_type; @@ -113,7 +113,7 @@ static fr_dict_attr_autoload_t rlm_pap_dict_attr[] = { { .out = &attr_auth_type, .name = "Auth-Type", .type = FR_TYPE_UINT32, .dict = &dict_freeradius }, { .out = &attr_root, .name = "Password", .type = FR_TYPE_TLV, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; #ifdef HAVE_OPENSSL_EVP_H diff --git a/src/modules/rlm_passwd/rlm_passwd.c b/src/modules/rlm_passwd/rlm_passwd.c index 753b0ee33d..ee725b8985 100644 --- a/src/modules/rlm_passwd/rlm_passwd.c +++ b/src/modules/rlm_passwd/rlm_passwd.c @@ -53,7 +53,7 @@ static fr_dict_t const *dict_freeradius; extern fr_dict_autoload_t rlm_passwd_dict[]; fr_dict_autoload_t rlm_passwd_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; #ifdef TEST diff --git a/src/modules/rlm_radius/rlm_radius.c b/src/modules/rlm_radius/rlm_radius.c index 26120db980..253fa99c34 100644 --- a/src/modules/rlm_radius/rlm_radius.c +++ b/src/modules/rlm_radius/rlm_radius.c @@ -175,7 +175,7 @@ static fr_dict_t const *dict_radius; extern fr_dict_autoload_t rlm_radius_dict[]; fr_dict_autoload_t rlm_radius_dict[] = { { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_chap_challenge; @@ -210,7 +210,7 @@ fr_dict_attr_autoload_t rlm_radius_dict_attr[] = { { .out = &attr_response_length, .name = "Extended-Attribute-1.Response-Length", .type = FR_TYPE_UINT32, .dict = &dict_radius }, { .out = &attr_user_password, .name = "User-Password", .type = FR_TYPE_STRING, .dict = &dict_radius}, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; #include "bio.c" diff --git a/src/modules/rlm_rediswho/rlm_rediswho.c b/src/modules/rlm_rediswho/rlm_rediswho.c index 1febd0008e..5e376c9246 100644 --- a/src/modules/rlm_rediswho/rlm_rediswho.c +++ b/src/modules/rlm_rediswho/rlm_rediswho.c @@ -82,7 +82,7 @@ static fr_dict_t const *dict_radius; extern fr_dict_autoload_t rlm_rediswho_dict[]; fr_dict_autoload_t rlm_rediswho_dict[] = { { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_acct_status_type; @@ -90,7 +90,7 @@ static fr_dict_attr_t const *attr_acct_status_type; extern fr_dict_attr_autoload_t rlm_rediswho_dict_attr[]; fr_dict_attr_autoload_t rlm_rediswho_dict_attr[] = { { .out = &attr_acct_status_type, .name = "Acct-Status-Type", .type = FR_TYPE_UINT32, .dict = &dict_radius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /* diff --git a/src/modules/rlm_rest/rlm_rest.c b/src/modules/rlm_rest/rlm_rest.c index 2fc59b55bc..b80c264aca 100644 --- a/src/modules/rlm_rest/rlm_rest.c +++ b/src/modules/rlm_rest/rlm_rest.c @@ -249,7 +249,7 @@ fr_dict_t const *dict_freeradius; extern fr_dict_autoload_t rlm_rest_dict[]; fr_dict_autoload_t rlm_rest_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; fr_dict_attr_t const *attr_rest_http_body; @@ -261,7 +261,7 @@ fr_dict_attr_autoload_t rlm_rest_dict_attr[] = { { .out = &attr_rest_http_body, .name = "REST-HTTP-Body", .type = FR_TYPE_STRING, .dict = &dict_freeradius }, { .out = &attr_rest_http_header, .name = "REST-HTTP-Header", .type = FR_TYPE_STRING, .dict = &dict_freeradius }, { .out = &attr_rest_http_status_code, .name = "REST-HTTP-Status-Code", .type = FR_TYPE_UINT32, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; extern global_lib_autoinst_t const * const rlm_rest_lib[]; diff --git a/src/modules/rlm_securid/rlm_securid.c b/src/modules/rlm_securid/rlm_securid.c index b0373e1b27..a63a969c4e 100644 --- a/src/modules/rlm_securid/rlm_securid.c +++ b/src/modules/rlm_securid/rlm_securid.c @@ -54,7 +54,7 @@ static fr_dict_t const *dict_radius; extern fr_dict_autoload_t mem_dict[]; fr_dict_autoload_t mem_dict[] = { { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; fr_dict_attr_t const *attr_prompt; @@ -70,7 +70,7 @@ fr_dict_attr_autoload_t mem_dict_attr[] = { { .out = &attr_state, .name = "State", .type = FR_TYPE_OCTETS, .dict = &dict_radius }, { .out = &attr_user_name, .name = "User-Name", .type = FR_TYPE_STRING, .dict = &dict_radius }, { .out = &attr_user_password, .name = "User-Password", .type = FR_TYPE_STRING, .dict = &dict_radius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static SD_CHAR empty_pin[] = ""; diff --git a/src/modules/rlm_sigtran/rlm_sigtran.c b/src/modules/rlm_sigtran/rlm_sigtran.c index ad16f22d9b..9305f8d11a 100644 --- a/src/modules/rlm_sigtran/rlm_sigtran.c +++ b/src/modules/rlm_sigtran/rlm_sigtran.c @@ -179,7 +179,7 @@ fr_dict_attr_t const *attr_eap_aka_sim_rand; extern fr_dict_autoload_t rlm_sigtran_dict[]; fr_dict_autoload_t rlm_sigtran_dict[] = { { .out = &dict_eap_aka_sim, .base_dir = "eap/aka-sim", .proto = "eap-aka-sim" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; fr_dict_attr_t const *attr_auth_type; @@ -194,7 +194,7 @@ fr_dict_attr_autoload_t rlm_sigtran_dict_attr[] = { { .out = &attr_eap_aka_sim_sres, .name = "SRES", .type = FR_TYPE_OCTETS, .dict = &dict_eap_aka_sim }, { .out = &attr_eap_aka_sim_xres, .name = "XRES", .type = FR_TYPE_OCTETS, .dict = &dict_eap_aka_sim }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static unlang_action_t CC_HINT(nonnull) mod_authorize(unlang_result_t *p_result, module_ctx_t const *mctx, request_t *request) diff --git a/src/modules/rlm_smtp/rlm_smtp.c b/src/modules/rlm_smtp/rlm_smtp.c index 6cfd79a6bc..33183bb1aa 100644 --- a/src/modules/rlm_smtp/rlm_smtp.c +++ b/src/modules/rlm_smtp/rlm_smtp.c @@ -41,7 +41,7 @@ static fr_dict_t const *dict_freeradius; extern fr_dict_autoload_t rlm_smtp_dict[]; fr_dict_autoload_t rlm_smtp_dict[] = { { .out = &dict_freeradius, .proto = "freeradius"}, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_smtp_header; @@ -51,7 +51,7 @@ extern fr_dict_attr_autoload_t rlm_smtp_dict_attr[]; fr_dict_attr_autoload_t rlm_smtp_dict_attr[] = { { .out = &attr_smtp_header, .name = "SMTP-Mail-Header", .type = FR_TYPE_STRING, .dict = &dict_freeradius }, { .out = &attr_smtp_body, .name = "SMTP-Mail-Body", .type = FR_TYPE_STRING, .dict = &dict_freeradius }, - { NULL }, + DICT_AUTOLOAD_TERMINATOR, }; extern global_lib_autoinst_t const * const rlm_smtp_lib[]; diff --git a/src/modules/rlm_sql/rlm_sql.c b/src/modules/rlm_sql/rlm_sql.c index 158880d61a..0e37d91601 100644 --- a/src/modules/rlm_sql/rlm_sql.c +++ b/src/modules/rlm_sql/rlm_sql.c @@ -98,7 +98,7 @@ static fr_dict_t const *dict_freeradius; extern fr_dict_autoload_t rlm_sql_dict[]; fr_dict_autoload_t rlm_sql_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_fall_through; @@ -112,7 +112,7 @@ fr_dict_attr_autoload_t rlm_sql_dict_attr[] = { { .out = &attr_sql_user_name, .name = "SQL-User-Name", .type = FR_TYPE_STRING, .dict = &dict_freeradius }, { .out = &attr_user_profile, .name = "User-Profile", .type = FR_TYPE_STRING, .dict = &dict_freeradius }, { .out = &attr_expr_bool_enum, .name = "Expr-Bool-Enum", .type = FR_TYPE_BOOL, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; typedef struct { diff --git a/src/modules/rlm_sqlcounter/rlm_sqlcounter.c b/src/modules/rlm_sqlcounter/rlm_sqlcounter.c index ec4bb221f6..de6badf1bf 100644 --- a/src/modules/rlm_sqlcounter/rlm_sqlcounter.c +++ b/src/modules/rlm_sqlcounter/rlm_sqlcounter.c @@ -114,7 +114,7 @@ static fr_dict_t const *dict_freeradius; extern fr_dict_autoload_t rlm_sqlcounter_dict[]; fr_dict_autoload_t rlm_sqlcounter_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static int find_next_reset(rlm_sqlcounter_t *inst, fr_time_t now) diff --git a/src/modules/rlm_stats/rlm_stats.c b/src/modules/rlm_stats/rlm_stats.c index 6df195dd75..8253d3c3a8 100644 --- a/src/modules/rlm_stats/rlm_stats.c +++ b/src/modules/rlm_stats/rlm_stats.c @@ -95,7 +95,7 @@ static fr_dict_t const *dict_radius; extern fr_dict_autoload_t rlm_stats_dict[]; fr_dict_autoload_t rlm_stats_dict[] = { { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_freeradius_stats4_ipv4_address; @@ -109,7 +109,7 @@ fr_dict_attr_autoload_t rlm_stats_dict_attr[] = { { .out = &attr_freeradius_stats4_ipv6_address, .name = "Vendor-Specific.FreeRADIUS.Stats4.IPv6-Address", .type = FR_TYPE_IPV6_ADDR, .dict = &dict_radius }, { .out = &attr_freeradius_stats4_type, .name = "Vendor-Specific.FreeRADIUS.Stats4.Type", .type = FR_TYPE_UINT32, .dict = &dict_radius }, { .out = &attr_freeradius_stats4_packet_counters, .name = "Vendor-Specific.FreeRADIUS.Stats4.Packet-Counters", .type = FR_TYPE_TLV, .dict = &dict_radius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static void coalesce(uint64_t final_stats[FR_RADIUS_CODE_MAX], rlm_stats_thread_t *t, diff --git a/src/modules/rlm_tacacs/rlm_tacacs.c b/src/modules/rlm_tacacs/rlm_tacacs.c index 99e1194d16..a295c915f7 100644 --- a/src/modules/rlm_tacacs/rlm_tacacs.c +++ b/src/modules/rlm_tacacs/rlm_tacacs.c @@ -74,7 +74,7 @@ static fr_dict_t const *dict_tacacs; extern fr_dict_autoload_t rlm_tacacs_dict[]; fr_dict_autoload_t rlm_tacacs_dict[] = { { .out = &dict_tacacs, .proto = "tacacs" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_packet_type; @@ -82,7 +82,7 @@ static fr_dict_attr_t const *attr_packet_type; extern fr_dict_attr_autoload_t rlm_tacacs_dict_attr[]; fr_dict_attr_autoload_t rlm_tacacs_dict_attr[] = { { .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_tacacs }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /** Set which types of packets we can parse diff --git a/src/modules/rlm_tacacs/rlm_tacacs_tcp.c b/src/modules/rlm_tacacs/rlm_tacacs_tcp.c index 6d88be9981..a4bd6c8370 100644 --- a/src/modules/rlm_tacacs/rlm_tacacs_tcp.c +++ b/src/modules/rlm_tacacs/rlm_tacacs_tcp.c @@ -199,7 +199,7 @@ static fr_dict_t const *dict_tacacs; extern fr_dict_autoload_t rlm_tacacs_tcp_dict[]; fr_dict_autoload_t rlm_tacacs_tcp_dict[] = { { .out = &dict_tacacs, .proto = "tacacs" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_packet_type; @@ -211,7 +211,7 @@ fr_dict_attr_autoload_t rlm_tacacs_tcp_dict_attr[] = { { .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_tacacs }, { .out = &attr_packet_hdr, .name = "Packet", .type = FR_TYPE_STRUCT, .dict = &dict_tacacs }, { .out = &attr_session_id, .name = "Packet.Session-ID", .type = FR_TYPE_UINT32, .dict = &dict_tacacs }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /** Clear out any connection specific resources from a tcp request diff --git a/src/modules/rlm_test/rlm_test.c b/src/modules/rlm_test/rlm_test.c index 124f2d4492..2ca186fae3 100644 --- a/src/modules/rlm_test/rlm_test.c +++ b/src/modules/rlm_test/rlm_test.c @@ -181,7 +181,7 @@ static fr_dict_t const *dict_radius; extern fr_dict_autoload_t rlm_test_dict[]; fr_dict_autoload_t rlm_test_dict[] = { { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_user_name; @@ -189,7 +189,7 @@ static fr_dict_attr_t const *attr_user_name; extern fr_dict_attr_autoload_t rlm_test_dict_attr[]; fr_dict_attr_autoload_t rlm_test_dict_attr[] = { { .out = &attr_user_name, .name = "User-Name", .type = FR_TYPE_STRING, .dict = &dict_radius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /* diff --git a/src/modules/rlm_unix/rlm_unix.c b/src/modules/rlm_unix/rlm_unix.c index eacf37d349..adf0859b21 100644 --- a/src/modules/rlm_unix/rlm_unix.c +++ b/src/modules/rlm_unix/rlm_unix.c @@ -52,7 +52,7 @@ extern fr_dict_autoload_t rlm_unix_dict[]; fr_dict_autoload_t rlm_unix_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_auth_type; @@ -80,7 +80,7 @@ fr_dict_attr_autoload_t rlm_unix_dict_attr[] = { { .out = &attr_acct_status_type, .name = "Acct-Status-Type", .type = FR_TYPE_UINT32, .dict = &dict_radius }, { .out = &attr_acct_delay_time, .name = "Acct-Delay-Time", .type = FR_TYPE_UINT32, .dict = &dict_radius }, { .out = &attr_expr_bool_enum, .name = "Expr-Bool-Enum", .type = FR_TYPE_BOOL, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /** Check if the user is in the given group diff --git a/src/modules/rlm_wimax/rlm_wimax.c b/src/modules/rlm_wimax/rlm_wimax.c index 671a4ba63d..3a849bb49e 100644 --- a/src/modules/rlm_wimax/rlm_wimax.c +++ b/src/modules/rlm_wimax/rlm_wimax.c @@ -56,7 +56,7 @@ extern fr_dict_autoload_t rlm_wimax_dict[]; fr_dict_autoload_t rlm_wimax_dict[] = { { .out = &dict_radius, .proto = "radius" }, { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_eap_emsk; @@ -107,7 +107,7 @@ fr_dict_attr_autoload_t rlm_wimax_dict_attr[] = { { .out = &attr_ms_mppe_send_key, .name = "Vendor-Specific.Microsoft.MPPE-Send-Key", .type = FR_TYPE_OCTETS, .dict = &dict_radius }, { .out = &attr_ms_mppe_recv_key, .name = "Vendor-Specific.Microsoft.MPPE-Recv-Key", .type = FR_TYPE_OCTETS, .dict = &dict_radius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /* diff --git a/src/modules/rlm_winbind/rlm_winbind.c b/src/modules/rlm_winbind/rlm_winbind.c index 4a6b36b490..0d62d12fe8 100644 --- a/src/modules/rlm_winbind/rlm_winbind.c +++ b/src/modules/rlm_winbind/rlm_winbind.c @@ -62,7 +62,7 @@ static fr_dict_t const *dict_freeradius; extern fr_dict_autoload_t rlm_winbind_dict[]; fr_dict_autoload_t rlm_winbind_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_auth_type; @@ -72,7 +72,7 @@ extern fr_dict_attr_autoload_t rlm_winbind_dict_attr[]; fr_dict_attr_autoload_t rlm_winbind_dict_attr[] = { { .out = &attr_auth_type, .name = "Auth-Type", .type = FR_TYPE_UINT32, .dict = &dict_freeradius }, { .out = &attr_expr_bool_enum, .name = "Expr-Bool-Enum", .type = FR_TYPE_BOOL, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; typedef struct { diff --git a/src/modules/rlm_yubikey/rlm_yubikey.c b/src/modules/rlm_yubikey/rlm_yubikey.c index 95057be243..a1e24bae53 100644 --- a/src/modules/rlm_yubikey/rlm_yubikey.c +++ b/src/modules/rlm_yubikey/rlm_yubikey.c @@ -57,7 +57,7 @@ extern fr_dict_autoload_t rlm_yubikey_dict[]; fr_dict_autoload_t rlm_yubikey_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; fr_dict_attr_t const *attr_auth_type; @@ -81,7 +81,7 @@ fr_dict_attr_autoload_t rlm_yubikey_dict_attr[] = { { .out = &attr_yubikey_timestamp, .name = "Vendor-Specific.Yubico.Yubikey-Timestamp", .type = FR_TYPE_UINT32, .dict = &dict_radius }, { .out = &attr_yubikey_random, .name = "Vendor-Specific.Yubico.Yubikey-Random", .type = FR_TYPE_UINT32, .dict = &dict_radius }, { .out = &attr_yubikey_otp, .name = "Vendor-Specific.Yubico.Yubikey-OTP", .type = FR_TYPE_STRING, .dict = &dict_radius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static char const modhextab[] = "cbdefghijklnrtuv"; diff --git a/src/process/arp/base.c b/src/process/arp/base.c index 0a24728fb7..826bd49a3b 100644 --- a/src/process/arp/base.c +++ b/src/process/arp/base.c @@ -31,7 +31,7 @@ static fr_dict_t const *dict_arp; extern fr_dict_autoload_t process_arp_dict[]; fr_dict_autoload_t process_arp_dict[] = { { .out = &dict_arp, .proto = "arp" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_packet_type; @@ -39,7 +39,7 @@ static fr_dict_attr_t const *attr_packet_type; extern fr_dict_attr_autoload_t process_arp_dict_attr[]; fr_dict_attr_autoload_t process_arp_dict_attr[] = { { .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_arp}, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; typedef struct { diff --git a/src/process/bfd/base.c b/src/process/bfd/base.c index e4704d77bb..ef2c3031d6 100644 --- a/src/process/bfd/base.c +++ b/src/process/bfd/base.c @@ -31,7 +31,7 @@ static fr_dict_t const *dict_bfd; extern fr_dict_autoload_t process_bfd_dict[]; fr_dict_autoload_t process_bfd_dict[] = { { .out = &dict_bfd, .proto = "bfd" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_packet_type; @@ -45,7 +45,7 @@ fr_dict_attr_autoload_t process_bfd_dict_attr[] = { { .out = &attr_bfd_packet, .name = "Packet", .type = FR_TYPE_STRUCT, .dict = &dict_bfd}, { .out = &attr_bfd_state, .name = "Packet.state", .type = FR_TYPE_UINT8, .dict = &dict_bfd}, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; #define SECTION(_x) \ diff --git a/src/process/control/base.c b/src/process/control/base.c index 0fed07a1ca..12d2d0480c 100644 --- a/src/process/control/base.c +++ b/src/process/control/base.c @@ -30,7 +30,7 @@ static fr_dict_t const *dict_freeradius; extern fr_dict_autoload_t process_control_dict[]; fr_dict_autoload_t process_control_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_module_failure_message; @@ -41,7 +41,7 @@ fr_dict_attr_autoload_t process_control_dict_attr[] = { { .out = &attr_module_failure_message, .name = "Module-Failure-Message", .type = FR_TYPE_STRING, .dict = &dict_freeradius }, { .out = &attr_module_success_message, .name = "Module-Success-Message", .type = FR_TYPE_STRING, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static unlang_action_t mod_process(unlang_result_t *p_result, UNUSED module_ctx_t const *mctx, UNUSED request_t *request) diff --git a/src/process/dhcpv4/base.c b/src/process/dhcpv4/base.c index 3739e70a16..9e39f0d835 100644 --- a/src/process/dhcpv4/base.c +++ b/src/process/dhcpv4/base.c @@ -36,7 +36,7 @@ static fr_dict_t const *dict_dhcpv4; extern fr_dict_autoload_t process_dhcpv4_dict[]; fr_dict_autoload_t process_dhcpv4_dict[] = { { .out = &dict_dhcpv4, .proto = "dhcpv4" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_message_type; @@ -50,7 +50,7 @@ fr_dict_attr_autoload_t process_dhcpv4_dict_attr[] = { { .out = &attr_yiaddr, .name = "Your-IP-Address", .type = FR_TYPE_IPV4_ADDR, .dict = &dict_dhcpv4}, { .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_dhcpv4}, { .out = &attr_dhcp_option_82, .name = "Relay-Agent-Information", .type = FR_TYPE_TLV, .dict = &dict_dhcpv4 }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /* diff --git a/src/process/dhcpv6/base.c b/src/process/dhcpv6/base.c index 1e2f5c10fb..71ac9dabfb 100644 --- a/src/process/dhcpv6/base.c +++ b/src/process/dhcpv6/base.c @@ -122,7 +122,7 @@ extern fr_dict_autoload_t process_dhcpv6_dict[]; fr_dict_autoload_t process_dhcpv6_dict[] = { { .out = &dict_dhcpv6, .proto = "dhcpv6" }, { .out = &dict_freeradius, .proto = "freeradius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_client_id; @@ -152,7 +152,7 @@ fr_dict_attr_autoload_t process_dhcpv6_dict_attr[] = { { .out = &attr_transaction_id, .name = "Transaction-Id", .type = FR_TYPE_OCTETS, .dict = &dict_dhcpv6 }, { .out = &attr_module_failure_message, .name = "Module-Failure-Message", .type = FR_TYPE_STRING, .dict = &dict_freeradius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_value_box_t const *enum_status_code_success; @@ -166,7 +166,7 @@ fr_dict_enum_autoload_t process_dhcpv6_dict_enum[] = { { .out = &enum_status_code_unspec_fail, .name = "UnspecFail", .attr = &attr_status_code_value }, { .out = &enum_status_code_not_on_link, .name = "NotOnLink", .attr = &attr_status_code_value }, { .out = &enum_status_code_no_binding, .name = "NoBinding", .attr = &attr_status_code_value }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; #define FR_DHCPV6_PROCESS_CODE_VALID(_x) (FR_DHCPV6_PACKET_CODE_VALID(_x) || (_x == FR_DHCPV6_DO_NOT_RESPOND)) diff --git a/src/process/dns/base.c b/src/process/dns/base.c index 6245bc8c65..557643196b 100644 --- a/src/process/dns/base.c +++ b/src/process/dns/base.c @@ -40,7 +40,7 @@ static fr_dict_t const *dict_dns; extern fr_dict_autoload_t process_dns_dict[]; fr_dict_autoload_t process_dns_dict[] = { { .out = &dict_dns, .proto = "dns" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_packet_type; @@ -60,7 +60,7 @@ fr_dict_attr_autoload_t process_dns_dict_attr[] = { { .out = &attr_response_bit, .name = "Header.Query", .type = FR_TYPE_BOOL, .dict = &dict_dns}, { .out = &attr_rcode, .name = "Header.Rcode", .type = FR_TYPE_UINT8, .dict = &dict_dns}, { .out = &attr_authoritative_bit, .name = "Header.Authoritative", .type = FR_TYPE_BOOL, .dict = &dict_dns}, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_value_box_t const *enum_rcode_no_error; @@ -76,7 +76,7 @@ fr_dict_enum_autoload_t process_dns_dict_enum[] = { { .out = &enum_rcode_server_failure, .name = "Server-Failure", .attr = &attr_rcode }, /* fail */ { .out = &enum_rcode_name_error, .name = "Name-Error", .attr = &attr_rcode }, /* notfound */ { .out = &enum_rcode_refused, .name = "Refused", .attr = &attr_rcode }, /* reject */ - { NULL } + DICT_AUTOLOAD_TERMINATOR }; typedef struct { diff --git a/src/process/ldap_sync/base.c b/src/process/ldap_sync/base.c index edf289c824..aa87ab817d 100644 --- a/src/process/ldap_sync/base.c +++ b/src/process/ldap_sync/base.c @@ -33,7 +33,7 @@ static fr_dict_t const *dict_ldap_sync; extern fr_dict_autoload_t process_ldap_sync_dict[]; fr_dict_autoload_t process_ldap_sync_dict[] = { { .out = &dict_ldap_sync, .proto = "ldap" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_packet_type; @@ -42,7 +42,7 @@ extern fr_dict_attr_autoload_t process_ldap_sync_dict_attr[]; fr_dict_attr_autoload_t process_ldap_sync_dict_attr[] = { { .out = &attr_packet_type, .name = "Packet-Type", .type= FR_TYPE_UINT32, .dict = &dict_ldap_sync }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static char const *ldap_sync_message_types[FR_LDAP_SYNC_CODE_MAX] = { diff --git a/src/process/radius/base.c b/src/process/radius/base.c index 24f7a56835..b99a103327 100644 --- a/src/process/radius/base.c +++ b/src/process/radius/base.c @@ -50,7 +50,7 @@ extern fr_dict_autoload_t process_radius_dict[]; fr_dict_autoload_t process_radius_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_auth_type; @@ -87,7 +87,7 @@ fr_dict_attr_autoload_t process_radius_dict_attr[] = { { .out = &attr_event_timestamp, .name = "Event-Timestamp", .type = FR_TYPE_DATE, .dict = &dict_radius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_value_box_t const *enum_auth_type_accept; @@ -97,7 +97,7 @@ extern fr_dict_enum_autoload_t process_radius_dict_enum[]; fr_dict_enum_autoload_t process_radius_dict_enum[] = { { .out = &enum_auth_type_accept, .name = "Accept", .attr = &attr_auth_type }, { .out = &enum_auth_type_reject, .name = "Reject", .attr = &attr_auth_type }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /* diff --git a/src/process/tacacs/base.c b/src/process/tacacs/base.c index c4a250d7da..949d289fd6 100644 --- a/src/process/tacacs/base.c +++ b/src/process/tacacs/base.c @@ -42,7 +42,7 @@ extern fr_dict_autoload_t process_tacacs_dict[]; fr_dict_autoload_t process_tacacs_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_tacacs, .proto = "tacacs" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_auth_type; @@ -110,7 +110,7 @@ fr_dict_attr_autoload_t process_tacacs_dict_attr[] = { { .out = &attr_user_password, .name = "User-Password", .type = FR_TYPE_STRING, .dict = &dict_tacacs }, { .out = &attr_chap_password, .name = "CHAP-Password", .type = FR_TYPE_OCTETS, .dict = &dict_tacacs }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_value_box_t const *enum_auth_type_accept; @@ -124,7 +124,7 @@ fr_dict_enum_autoload_t process_tacacs_dict_enum[] = { { .out = &enum_auth_type_reject, .name = "Reject", .attr = &attr_auth_type }, { .out = &enum_auth_flags_noecho, .name = "No-Echo", .attr = &attr_tacacs_authentication_flags }, { .out = &enum_tacacs_auth_type_ascii, .name = "ASCII", .attr = &attr_tacacs_authentication_type }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; diff --git a/src/process/test/base.c b/src/process/test/base.c index f1bc54719b..6fbbe4e6df 100644 --- a/src/process/test/base.c +++ b/src/process/test/base.c @@ -30,7 +30,7 @@ static fr_dict_t const *dict_test; extern fr_dict_autoload_t process_test_dict[]; fr_dict_autoload_t process_test_dict[] = { { .out = &dict_test, .proto = "test" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_packet_type; @@ -38,7 +38,7 @@ static fr_dict_attr_t const *attr_packet_type; extern fr_dict_attr_autoload_t process_test_dict_attr[]; fr_dict_attr_autoload_t process_test_dict_attr[] = { { .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_test}, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; typedef struct { diff --git a/src/process/tls/base.c b/src/process/tls/base.c index 88c3e204d8..a79e5125c1 100644 --- a/src/process/tls/base.c +++ b/src/process/tls/base.c @@ -31,7 +31,7 @@ static fr_dict_t const *dict_tls; extern fr_dict_autoload_t process_tls_dict[]; fr_dict_autoload_t process_tls_dict[] = { { .out = &dict_tls, .proto = "tls" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_packet_type; @@ -39,7 +39,7 @@ static fr_dict_attr_t const *attr_packet_type; extern fr_dict_attr_autoload_t process_tls_dict_attr[]; fr_dict_attr_autoload_t process_tls_dict_attr[] = { { .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_tls}, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; typedef struct { diff --git a/src/process/ttls/base.c b/src/process/ttls/base.c index b461315694..a2a619f903 100644 --- a/src/process/ttls/base.c +++ b/src/process/ttls/base.c @@ -44,7 +44,7 @@ extern fr_dict_autoload_t process_ttls_dict[]; fr_dict_autoload_t process_ttls_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_auth_type; @@ -82,7 +82,7 @@ fr_dict_attr_autoload_t process_ttls_dict_attr[] = { { .out = &attr_original_packet_code, .name = "Extended-Attribute-1.Original-Packet-Code", .type = FR_TYPE_UINT32, .dict = &dict_radius }, { .out = &attr_error_cause, .name = "Error-Cause", .type = FR_TYPE_UINT32, .dict = &dict_radius }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_value_box_t const *enum_auth_type_accept; @@ -92,7 +92,7 @@ extern fr_dict_enum_autoload_t process_ttls_dict_enum[]; fr_dict_enum_autoload_t process_ttls_dict_enum[] = { { .out = &enum_auth_type_accept, .name = "Accept", .attr = &attr_auth_type }, { .out = &enum_auth_type_reject, .name = "Reject", .attr = &attr_auth_type }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /* diff --git a/src/process/vmps/base.c b/src/process/vmps/base.c index 937d71ecf8..86db218768 100644 --- a/src/process/vmps/base.c +++ b/src/process/vmps/base.c @@ -35,7 +35,7 @@ static fr_dict_t const *dict_vmps; extern fr_dict_autoload_t process_vmps_dict[]; fr_dict_autoload_t process_vmps_dict[] = { { .out = &dict_vmps, .proto = "vmps" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_dict_attr_t const *attr_packet_type; @@ -43,7 +43,7 @@ static fr_dict_attr_t const *attr_packet_type; extern fr_dict_attr_autoload_t process_vmps_dict_attr[]; fr_dict_attr_autoload_t process_vmps_dict_attr[] = { { .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_vmps }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; typedef struct { diff --git a/src/protocols/arp/base.c b/src/protocols/arp/base.c index e196931c71..bc0b4b786c 100644 --- a/src/protocols/arp/base.c +++ b/src/protocols/arp/base.c @@ -57,7 +57,7 @@ fr_dict_t const *dict_arp; extern fr_dict_autoload_t libfreeradius_arp_dict[]; fr_dict_autoload_t libfreeradius_arp_dict[] = { { .out = &dict_arp, .proto = "arp" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; fr_dict_attr_t const *attr_arp_packet; @@ -65,7 +65,7 @@ fr_dict_attr_t const *attr_arp_packet; extern fr_dict_attr_autoload_t libfreeradius_arp_dict_attr[]; fr_dict_attr_autoload_t libfreeradius_arp_dict_attr[] = { { .out = &attr_arp_packet, .name = "arp", .type = FR_TYPE_STRUCT, .dict = &dict_arp }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; diff --git a/src/protocols/bfd/base.c b/src/protocols/bfd/base.c index 75daba3734..84e34fe7c5 100644 --- a/src/protocols/bfd/base.c +++ b/src/protocols/bfd/base.c @@ -44,7 +44,7 @@ extern fr_dict_autoload_t libfreeradius_bfd_dict[]; fr_dict_autoload_t libfreeradius_bfd_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_bfd, .proto = "bfd" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; fr_dict_attr_t const *attr_packet_type; @@ -57,7 +57,7 @@ fr_dict_attr_autoload_t libfreeradius_bfd_dict_attr[] = { { .out = &attr_bfd_packet, .name = "Packet", .type = FR_TYPE_STRUCT, .dict = &dict_bfd }, { .out = &attr_bfd_additional_data, .name = "Additional-Data", .type = FR_TYPE_GROUP, .dict = &dict_bfd }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; char const *fr_bfd_packet_names[FR_BFD_CODE_MAX] = { diff --git a/src/protocols/der/base.c b/src/protocols/der/base.c index d454c7eb46..04b067b741 100644 --- a/src/protocols/der/base.c +++ b/src/protocols/der/base.c @@ -40,12 +40,16 @@ fr_dict_t const *dict_der; //fr_dict_attr_t const *attr_oid_tree; extern fr_dict_autoload_t libfreeradius_der_dict[]; -fr_dict_autoload_t libfreeradius_der_dict[] = { { .out = &dict_der, .proto = "der" }, { NULL } }; +fr_dict_autoload_t libfreeradius_der_dict[] = { + { .out = &dict_der, .proto = "der" }, + + DICT_AUTOLOAD_TERMINATOR +}; extern fr_dict_attr_autoload_t libfreeradius_der_dict_attr[]; fr_dict_attr_autoload_t libfreeradius_der_dict_attr[] = { // { .out = &attr_oid_tree, .name = "OID-Tree", .type = FR_TYPE_TLV, .dict = &dict_der }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; static fr_table_num_sorted_t const tag_name_to_number[] = { diff --git a/src/protocols/dhcpv4/base.c b/src/protocols/dhcpv4/base.c index 750da09deb..b0c2350abb 100644 --- a/src/protocols/dhcpv4/base.c +++ b/src/protocols/dhcpv4/base.c @@ -43,7 +43,8 @@ fr_dict_t const *dict_dhcpv4; extern fr_dict_autoload_t dhcpv4_dict[]; fr_dict_autoload_t dhcpv4_dict[] = { { .out = &dict_dhcpv4, .proto = "dhcpv4" }, - { NULL } + + DICT_AUTOLOAD_TERMINATOR }; fr_dict_attr_t const *attr_dhcp_boot_filename; @@ -97,7 +98,8 @@ fr_dict_attr_autoload_t dhcpv4_dict_attr[] = { { .out = &attr_dhcp_subnet_selection_option, .name = "Subnet-Selection-Option", .type = FR_TYPE_IPV4_ADDR, .dict = &dict_dhcpv4 }, { .out = &attr_dhcp_network_subnet, .name = "Network-Subnet", .type = FR_TYPE_IPV4_PREFIX, .dict = &dict_dhcpv4 }, { .out = &attr_dhcp_option_82, .name = "Relay-Agent-Information", .type = FR_TYPE_TLV, .dict = &dict_dhcpv4 }, - { NULL } + + DICT_AUTOLOAD_TERMINATOR }; /* diff --git a/src/protocols/dhcpv6/base.c b/src/protocols/dhcpv6/base.c index 04e6bb1e15..9c147b0c8d 100644 --- a/src/protocols/dhcpv6/base.c +++ b/src/protocols/dhcpv6/base.c @@ -43,7 +43,7 @@ fr_dict_t const *dict_dhcpv6; extern fr_dict_autoload_t libfreeradius_dhcpv6_dict[]; fr_dict_autoload_t libfreeradius_dhcpv6_dict[] = { { .out = &dict_dhcpv6, .proto = "dhcpv6" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; fr_dict_attr_t const *attr_packet_type; @@ -63,7 +63,7 @@ fr_dict_attr_autoload_t libfreeradius_dhcpv6_dict_attr[] = { { .out = &attr_relay_peer_address, .name = "Relay-Peer-Address", .type = FR_TYPE_IPV6_ADDR, .dict = &dict_dhcpv6 }, { .out = &attr_relay_message, .name = "Relay-Message", .type = FR_TYPE_GROUP, .dict = &dict_dhcpv6 }, { .out = &attr_option_request, .name = "Option-Request", .type = FR_TYPE_ATTR, .dict = &dict_dhcpv6 }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; /* diff --git a/src/protocols/dns/base.c b/src/protocols/dns/base.c index d44eea0406..e8306c84d8 100644 --- a/src/protocols/dns/base.c +++ b/src/protocols/dns/base.c @@ -45,7 +45,7 @@ static _Thread_local uint8_t fr_dns_marker[65536]; extern fr_dict_autoload_t dns_dict[]; fr_dict_autoload_t dns_dict[] = { { .out = &dict_dns, .proto = "dns" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; //fr_dict_attr_t const *attr_dns_packet_type; @@ -63,7 +63,7 @@ fr_dict_attr_autoload_t dns_dict_attr[] = { { .out = &attr_dns_rr, .name = "Resource-Record", .type = FR_TYPE_STRUCT, .dict = &dict_dns }, { .out = &attr_dns_ns, .name = "Name-Server", .type = FR_TYPE_STRUCT, .dict = &dict_dns }, { .out = &attr_dns_ar, .name = "Additional-Record", .type = FR_TYPE_STRUCT, .dict = &dict_dns }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; char const *fr_dns_packet_names[FR_DNS_CODE_MAX] = { diff --git a/src/protocols/radius/base.c b/src/protocols/radius/base.c index 61ca1c869b..3edd26c403 100644 --- a/src/protocols/radius/base.c +++ b/src/protocols/radius/base.c @@ -48,7 +48,8 @@ extern fr_dict_autoload_t libfreeradius_radius_dict[]; fr_dict_autoload_t libfreeradius_radius_dict[] = { { .out = &dict_freeradius, .proto = "freeradius" }, { .out = &dict_radius, .proto = "radius" }, - { NULL } + + DICT_AUTOLOAD_TERMINATOR }; fr_dict_attr_t const *attr_packet_type; @@ -73,7 +74,8 @@ fr_dict_attr_autoload_t libfreeradius_radius_dict_attr[] = { { .out = &attr_state, .name = "State", .type = FR_TYPE_OCTETS, .dict = &dict_radius }, { .out = &attr_vendor_specific, .name = "Vendor-Specific", .type = FR_TYPE_VSA, .dict = &dict_radius }, { .out = &attr_nas_filter_rule, .name = "NAS-Filter-Rule", .type = FR_TYPE_STRING, .dict = &dict_radius }, - { NULL } + + DICT_AUTOLOAD_TERMINATOR }; /* diff --git a/src/protocols/tacacs/base.c b/src/protocols/tacacs/base.c index a35c2a7664..4095da6b9d 100644 --- a/src/protocols/tacacs/base.c +++ b/src/protocols/tacacs/base.c @@ -39,7 +39,7 @@ extern fr_dict_autoload_t libfreeradius_tacacs_dict[]; fr_dict_autoload_t libfreeradius_tacacs_dict[] = { { .out = &dict_tacacs, .proto = "tacacs" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; fr_dict_attr_t const *attr_tacacs_accounting_flags; @@ -114,7 +114,7 @@ fr_dict_attr_autoload_t libfreeradius_tacacs_dict_attr[] = { { .out = &attr_tacacs_mschap_response, .name = "MS-CHAP-Response", .type = FR_TYPE_OCTETS, .dict = &dict_tacacs }, { .out = &attr_tacacs_mschap2_response, .name = "MS-CHAP2-Response", .type = FR_TYPE_OCTETS, .dict = &dict_tacacs }, { .out = &attr_tacacs_mschap_challenge, .name = "MS-CHAP-Challenge", .type = FR_TYPE_OCTETS, .dict = &dict_tacacs }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; char const *fr_tacacs_packet_names[FR_TACACS_CODE_MAX] = { diff --git a/src/protocols/tftp/base.c b/src/protocols/tftp/base.c index ca66b3b60c..b3dbef62de 100644 --- a/src/protocols/tftp/base.c +++ b/src/protocols/tftp/base.c @@ -38,7 +38,7 @@ fr_dict_t const *dict_tftp; extern fr_dict_autoload_t libfreeradius_tftp[]; fr_dict_autoload_t libfreeradius_tftp[] = { { .out = &dict_tftp, .proto = "tftp" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; fr_dict_attr_t const *attr_tftp_block; @@ -65,7 +65,7 @@ fr_dict_attr_autoload_t libfreeradius_tftp_dict_attr[] = { { .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_tftp }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; char const *fr_tftp_codes[FR_TFTP_MAX_CODE] = { diff --git a/src/protocols/vmps/base.c b/src/protocols/vmps/base.c index 3204df5be8..9221ca87e7 100644 --- a/src/protocols/vmps/base.c +++ b/src/protocols/vmps/base.c @@ -36,7 +36,7 @@ fr_dict_t const *dict_vmps; extern fr_dict_autoload_t libfreeradius_vmps[]; fr_dict_autoload_t libfreeradius_vmps[] = { { .out = &dict_vmps, .proto = "vmps" }, - { NULL } + DICT_AUTOLOAD_TERMINATOR }; fr_dict_attr_t const *attr_error_code; @@ -48,7 +48,7 @@ fr_dict_attr_autoload_t libfreeradius_vmps_dict_attr[] = { { .out = &attr_error_code, .name = "Error-Code", .type = FR_TYPE_UINT8, .dict = &dict_vmps }, { .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_vmps }, { .out = &attr_sequence_number, .name = "Sequence-Number", .type = FR_TYPE_UINT32, .dict = &dict_vmps }, - { NULL } + DICT_AUTOLOAD_TERMINATOR };