]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Just use a single trie alloc function
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Fri, 16 Apr 2021 15:14:41 +0000 (10:14 -0500)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Fri, 16 Apr 2021 15:14:41 +0000 (10:14 -0500)
Most of these uses should be fixed up to use a key callback anyway....

src/lib/io/master.c
src/lib/server/client.c
src/lib/util/htrie.c
src/lib/util/htrie.h
src/lib/util/trie.c
src/lib/util/trie.h
src/listen/radius/proto_radius_tcp.c
src/modules/rlm_csv/rlm_csv.c
src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
src/modules/rlm_sql/sql_state.c

index d0658c8a3b1a10ea602980a0ede9de7810614587..dfff23bbcaa1c5730669498862049c65b9ef15b8 100644 (file)
@@ -2723,7 +2723,7 @@ fr_trie_t *fr_master_io_network(TALLOC_CTX *ctx, int af, fr_ipaddr_t *allow, fr_
        fr_trie_t *trie;
        size_t i, num;
 
-       MEM(trie = fr_trie_alloc(ctx));
+       MEM(trie = fr_trie_alloc(ctx, NULL, NULL));
 
        num = talloc_array_length(allow);
        fr_assert(num > 0);
@@ -2958,7 +2958,7 @@ int fr_master_io_listen(TALLOC_CTX *ctx, fr_io_instance_t *inst, fr_schedule_t *
        /*
         *      Create the trie of clients for this socket.
         */
-       MEM(thread->trie = fr_trie_alloc(thread));
+       MEM(thread->trie = fr_trie_alloc(thread, NULL, NULL));
        MEM(thread->alive_clients = fr_heap_alloc(thread, alive_client_cmp,
                                                   fr_io_client_t, alive_id));
 
index bec93f5bcd60930d595eda60ee5990e334b5933b..9daf087b51662984846bd626a003d51a5e4710dc 100644 (file)
@@ -115,25 +115,25 @@ RADCLIENT_LIST *client_list_init(CONF_SECTION *cs)
        clients->name = talloc_strdup(clients, cs ? cf_section_name1(cs) : "root");
 
 #ifdef WITH_TRIE
-       clients->v4_udp = fr_trie_alloc(clients);
+       clients->v4_udp = fr_trie_alloc(clients, NULL, NULL);
        if (!clients->v4_udp) {
                talloc_free(clients);
                return NULL;
        }
 
-       clients->v6_udp = fr_trie_alloc(clients);
+       clients->v6_udp = fr_trie_alloc(clients, NULL, NULL);
        if (!clients->v6_udp) {
                talloc_free(clients);
                return NULL;
        }
 
-       clients->v4_tcp = fr_trie_alloc(clients);
+       clients->v4_tcp = fr_trie_alloc(clients, NULL, NULL);
        if (!clients->v4_tcp) {
                talloc_free(clients);
                return NULL;
        }
 
-       clients->v6_tcp = fr_trie_alloc(clients);
+       clients->v6_tcp = fr_trie_alloc(clients, NULL, NULL);
        if (!clients->v6_tcp) {
                talloc_free(clients);
                return NULL;
index 68a0ec6a7f18ebac7f23434f6e049b758be17c9a..449663fdf06b0cf728a1fcee521907dc65923119 100644 (file)
@@ -24,12 +24,12 @@ RCSID("$Id$")
 
 #include <freeradius-devel/util/htrie.h>
 
-fr_htrie_t *fr_htrie_create(TALLOC_CTX *ctx,
-                           fr_htrie_type_t type,
-                           fr_hash_t hash_node,
-                           fr_cmp_t cmp_node,
-                           fr_trie_key_t get_key,
-                           fr_free_t free_node)
+fr_htrie_t *fr_htrie_alloc(TALLOC_CTX *ctx,
+                          fr_htrie_type_t type,
+                          fr_hash_t hash_node,
+                          fr_cmp_t cmp_node,
+                          fr_trie_key_t get_key,
+                          fr_free_t free_node)
 {
        fr_htrie_t *trie;
 
@@ -78,7 +78,7 @@ fr_htrie_t *fr_htrie_create(TALLOC_CTX *ctx,
        case FR_HTRIE_TRIE:
                if (!get_key) return NULL;
 
-               trie->ctx = fr_trie_generic_alloc(trie, get_key, free_node);
+               trie->ctx = fr_trie_alloc(trie, get_key, free_node);
                if (!trie->ctx) {
                        talloc_free(trie);
                        return NULL;
index 17849af92636807af0af9c011cba7e09f7d75d60..c969c140fdb75e69c57512abae0dd61528fb59f5 100644 (file)
@@ -19,7 +19,7 @@
  *
  * @file src/lib/util/htrie.h
  *
- * @copyright 2005,2006 The FreeRADIUS server project
+ * @copyright 2021 The FreeRADIUS server project
  */
 RCSIDH(htrie_h, "$Id$")
 
@@ -30,7 +30,7 @@ extern "C" {
 #include <freeradius-devel/util/hash.h>
 #include <freeradius-devel/util/rb.h>
 #include <freeradius-devel/util/trie.h>
-       
+
 typedef struct fr_htrie_s fr_htrie_t;
 
 typedef void *(*fr_htrie_find_t)(fr_htrie_t *ht, void const *data);
@@ -55,7 +55,7 @@ struct fr_htrie_s {
        fr_htrie_remove_t       remove;
        fr_htrie_delete_t       delete;
        fr_htrie_num_elements_t num_elements;
-       
+
 };
 
 typedef enum {
@@ -64,7 +64,7 @@ typedef enum {
        FR_HTRIE_TRIE,
 } fr_htrie_type_t;
 
-fr_htrie_t *fr_htrie_create(TALLOC_CTX *ctx,
+fr_htrie_t *fr_htrie_alloc(TALLOC_CTX *ctx,
                            fr_htrie_type_t type,
                            fr_hash_t hash_node,
                            fr_cmp_t cmp_node,
index 3aa43a01e5fc4efb3584b91e6107d6be024b6edb..88e74c486d887c1897467dc11af7deb7c658807f 100644 (file)
@@ -739,7 +739,7 @@ typedef struct {
  *     - NULL on error
  *     - fr_trie_node_t on success
  */
-fr_trie_t *_fr_trie_alloc(TALLOC_CTX *ctx, fr_trie_key_t get_key, fr_free_t free_data)
+fr_trie_t *fr_trie_alloc(TALLOC_CTX *ctx, fr_trie_key_t get_key, fr_free_t free_data)
 {
        fr_trie_user_t *user;
        fr_trie_ctx_t *uctx;
@@ -3422,7 +3422,7 @@ int main(int argc, char **argv)
 
        data_ctx = talloc_init_const("data_ctx");
 
-       ft = fr_trie_alloc(NULL);
+       ft = fr_trie_alloc(NULL, NULL, NULL);
        if (!ft) {
                fprintf(stderr, "Failed creating trie\n");
                fr_exit_now(1);
index 213a2cea69d5528d10b856662ffc03df94e565a1..b76707f9524868de929b933643566bd56a3d4af1 100644 (file)
@@ -55,15 +55,14 @@ typedef int (*fr_trie_walk_t)(uint8_t const *key, size_t keylen, void *data, voi
  */
 typedef int (*fr_trie_key_t)(uint8_t **out, size_t *outlen, void const *data);
 
-#define fr_trie_alloc(_ctx) _fr_trie_alloc(_ctx, NULL, NULL)
+fr_trie_t      *fr_trie_alloc(TALLOC_CTX *ctx, fr_trie_key_t get_key, fr_free_t free_node);
 
-#define fr_trie_generic_alloc(_ctx, _get_key, _free_data) _fr_trie_alloc(_ctx, _get_key, _free_data)
-
-fr_trie_t      *_fr_trie_alloc(TALLOC_CTX *ctx, fr_trie_key_t get_key, fr_free_t free_node);
 int            fr_trie_insert_by_key(fr_trie_t *ft, void const *key, size_t keylen, void const *data) CC_HINT(nonnull);
 
 void           *fr_trie_lookup_by_key(fr_trie_t const *ft, void const *key, size_t keylen) CC_HINT(nonnull);
+
 void           *fr_trie_match_by_key(fr_trie_t const *ft, void const *key, size_t keylen) CC_HINT(nonnull);
+
 void           *fr_trie_remove_by_key(fr_trie_t *ft, void const *key, size_t keylen) CC_HINT(nonnull);
 
 int            fr_trie_walk(fr_trie_t *ft, void *ctx, fr_trie_walk_t callback) CC_HINT(nonnull(1,3));
index db95982e96ad8eed345eaba09daec659ca1df074..b03fd554911c5d0045504b606e5f865b6bbc5640 100644 (file)
@@ -439,7 +439,7 @@ static int mod_bootstrap(void *instance, CONF_SECTION *cs)
                        return -1;
                }
        } else {
-               MEM(inst->trie = fr_trie_alloc(inst));
+               MEM(inst->trie = fr_trie_alloc(inst, NULL, NULL));
 
                for (i = 0; i < num; i++) {
                        fr_ipaddr_t *network;
index 3e2cd013db18e8e411b68c17dcc7de7818200cd8..84ca896afa7813d2b786d7790f427a2cebaf19cd 100644 (file)
@@ -565,7 +565,7 @@ static int mod_bootstrap(void *instance, CONF_SECTION *conf)
         */
        if ((inst->key_data_type == FR_TYPE_IPV4_ADDR) || (inst->key_data_type == FR_TYPE_IPV4_PREFIX) ||
            (inst->key_data_type == FR_TYPE_IPV6_ADDR) || (inst->key_data_type == FR_TYPE_IPV6_PREFIX)) {
-               MEM(inst->trie = fr_trie_alloc(inst));
+               MEM(inst->trie = fr_trie_alloc(inst, NULL, NULL));
        } else {
                MEM(inst->tree = fr_rb_inline_talloc_alloc(inst, rlm_csv_entry_t, node, csv_entry_cmp, NULL, 0));
        }
index 597c506725965b7a88db05cc4324463bdbb17741..ed8129aab3450b109fddb239dbba724d0a2eb6c7 100644 (file)
@@ -1576,7 +1576,7 @@ static int parse_subnet(rlm_isc_dhcp_tokenizer_t *state, rlm_isc_dhcp_info_t *in
 
                }
        } else {
-               parent->subnets = fr_trie_alloc(parent);
+               parent->subnets = fr_trie_alloc(parent, NULL, NULL);
                if (!parent->subnets) return -1;
        }
 
index 812adc4aa6a95d8b3df3b57fe7bd1819f1895632..bd151fe16e6928449cddb6757077884537e7ee01 100644 (file)
@@ -103,7 +103,7 @@ fr_trie_t *sql_state_trie_alloc(TALLOC_CTX *ctx)
 {
        fr_trie_t *states;
 
-       MEM(states = fr_trie_alloc(ctx));
+       MEM(states = fr_trie_alloc(ctx, NULL, NULL));
 
        if (sql_state_entries_from_table(states, sql_2011_classes) < 0) {
                talloc_free(states);