]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Auto load dict_arp and dict_bfd
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Fri, 30 Mar 2018 20:23:55 +0000 (21:23 +0100)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Sat, 31 Mar 2018 18:52:53 +0000 (19:52 +0100)
src/modules/proto_arp/proto_arp.c
src/modules/proto_bfd/proto_bfd.c

index 2ec70b50b25bd70e9fa812c6b3978a510ca02bfa..a1d54060be14638755a40df7b88b53bea6c5a3a1 100644 (file)
@@ -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,
index e3b8b7f78032759da40b7717cf00ca6ae22ad35c..8f10caa0ad561a883d49cb1a02965620e9864a6b 100644 (file)
@@ -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);