From: Arran Cudbard-Bell Date: Fri, 30 Mar 2018 20:23:55 +0000 (+0100) Subject: Auto load dict_arp and dict_bfd X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b81b2f89d2b2e720b837b2f37395cbcfccd9b9ba;p=thirdparty%2Ffreeradius-server.git Auto load dict_arp and dict_bfd --- diff --git a/src/modules/proto_arp/proto_arp.c b/src/modules/proto_arp/proto_arp.c index 2ec70b50b25..a1d54060be1 100644 --- a/src/modules/proto_arp/proto_arp.c +++ b/src/modules/proto_arp/proto_arp.c @@ -50,6 +50,14 @@ typedef struct arp_over_ether { uint8_t tpa[4]; //!< Target protocol address. } arp_over_ether_t; +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 } +}; + static rlm_rcode_t arp_process(REQUEST *request) { CONF_SECTION *unlang; @@ -188,7 +196,7 @@ static int arp_socket_decode(UNUSED rad_listen_t *listener, REQUEST *request) if (!fr_cond_assert((size_t)(end - p) < len)) return -1; /* Should have been detected in socket_recv */ - da = fr_dict_attr_by_name(NULL, header_names[i].name); + da = fr_dict_attr_by_name(dict_arp, header_names[i].name); if (!da) return 0; MEM(vp = fr_pair_afrom_da(request->packet, da)); @@ -304,7 +312,6 @@ static int arp_socket_compile(CONF_SECTION *server_cs, UNUSED CONF_SECTION *list return 0; } - extern rad_protocol_t proto_arp; rad_protocol_t proto_arp = { .magic = RLM_MODULE_INIT, @@ -312,6 +319,7 @@ rad_protocol_t proto_arp = { .inst_size = sizeof(arp_socket_t), .transports = 0, .tls = false, + .bootstrap = arp_socket_bootstrap, .compile = arp_socket_compile, .parse = arp_socket_parse, diff --git a/src/modules/proto_bfd/proto_bfd.c b/src/modules/proto_bfd/proto_bfd.c index e3b8b7f7803..8f10caa0ad5 100644 --- a/src/modules/proto_bfd/proto_bfd.c +++ b/src/modules/proto_bfd/proto_bfd.c @@ -228,6 +228,14 @@ typedef struct bfd_socket_t { rbtree_t *session_tree; } bfd_socket_t; +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 } +}; + static int bfd_start_packets(bfd_state_t *session); static int bfd_start_control(bfd_state_t *session); static int bfd_stop_control(bfd_state_t *session);