]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Update trigger_args_afrom_server to return fr_pair_list_t *
authorNick Porter <nick@portercomputing.co.uk>
Tue, 29 Dec 2020 14:31:34 +0000 (14:31 +0000)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 21 Jan 2021 23:05:49 +0000 (23:05 +0000)
src/lib/redis/cluster.c
src/lib/server/trigger.c
src/lib/server/trigger.h

index 711537276dffe1ac706d36ef3709705ec9626e46..6a6149300a95955b7a176c3200f3f931e6a77f27 100644 (file)
@@ -325,10 +325,9 @@ static int _cluster_node_cmp(void const *a, void const *b)
  */
 static void _cluster_node_conf_apply(fr_pool_t *pool, void *opaque)
 {
-       fr_pair_list_t  args;
+       fr_pair_list_t  *args = NULL;
        fr_redis_cluster_node_t *node = opaque;
 
-       fr_pair_list_init(&args);
        node->addr = node->pending_addr;
 
        if (node->cluster->triggers_enabled) {
@@ -338,9 +337,9 @@ static void _cluster_node_conf_apply(fr_pool_t *pool, void *opaque)
                if (!fr_pair_list_empty(&node->cluster->trigger_args)) MEM(fr_pair_list_copy(node->cluster, args,
                                                                      &node->cluster->trigger_args) >= 0);
 
-               fr_pool_enable_triggers(pool, node->cluster->trigger_prefix, &args);
+               fr_pool_enable_triggers(pool, node->cluster->trigger_prefix, args);
 
-               fr_pair_list_free(&args);
+               fr_pair_list_free(args);
        }
 }
 
@@ -373,10 +372,9 @@ static fr_redis_cluster_rcode_t cluster_node_connect(fr_redis_cluster_t *cluster
         */
        if (!node->pool) {
                char            buffer[256];
-               fr_pair_list_t  args;
+               fr_pair_list_t  *args = NULL;
                CONF_SECTION    *pool;
 
-               fr_pair_list_init(&args);
                snprintf(buffer, sizeof(buffer), "%s [%i]", cluster->log_prefix, node->id);
 
                pool = cf_section_find(cluster->module, "pool", NULL);
@@ -401,9 +399,9 @@ static fr_redis_cluster_rcode_t cluster_node_connect(fr_redis_cluster_t *cluster
 
                        if (!fr_pair_list_empty(&cluster->trigger_args)) MEM(fr_pair_list_copy(cluster, args, &cluster->trigger_args) >= 0);
 
-                       fr_pool_enable_triggers(node->pool, node->cluster->trigger_prefix, &args);
+                       fr_pool_enable_triggers(node->pool, node->cluster->trigger_prefix, args);
 
-                       fr_pair_list_free(&args);
+                       fr_pair_list_free(args);
                }
 
                if (fr_pool_start(node->pool) < 0) goto error;
index 7849291e471a585095707eaf6991a232cc877371..15c2823d4e695822f190aba9509d992a1fd320e2 100644 (file)
@@ -461,15 +461,15 @@ int trigger_exec(request_t *request, CONF_SECTION const *cs, char const *name, b
  *     - NULL on failure, or if triggers are not enabled.
  *     - list containing Pool-Server and Pool-Port
  */
-fr_pair_t *trigger_args_afrom_server(TALLOC_CTX *ctx, char const *server, uint16_t port)
+fr_pair_list_t *trigger_args_afrom_server(TALLOC_CTX *ctx, char const *server, uint16_t port)
 {
        fr_dict_attr_t const    *server_da;
        fr_dict_attr_t const    *port_da;
-       fr_pair_list_t          out;
+       fr_pair_list_t          *out;
        fr_pair_t               *vp;
-       fr_cursor_t             cursor;
 
-       fr_pair_list_init(&out);
+       out = fr_pair_list_alloc(ctx);
+       fr_pair_list_init(out);
        server_da = fr_dict_attr_child_by_num(fr_dict_root(fr_dict_internal()), FR_CONNECTION_POOL_SERVER);
        if (!server_da) {
                ERROR("Incomplete dictionary: Missing definition for \"Connection-Pool-Server\"");
@@ -482,15 +482,13 @@ fr_pair_t *trigger_args_afrom_server(TALLOC_CTX *ctx, char const *server, uint16
                return NULL;
        }
 
-       fr_cursor_init(&cursor, &out);
-
        MEM(vp = fr_pair_afrom_da(ctx, server_da));
        fr_pair_value_strdup(vp, server);
-       fr_cursor_append(&cursor, vp);
+       fr_pair_add(out, vp);
 
        MEM(vp = fr_pair_afrom_da(ctx, port_da));
        vp->vp_uint16 = port;
-       fr_cursor_append(&cursor, vp);
+       fr_pair_add(out, vp);
 
        return out;
 }
index 045ebd19a53d23cb898b8b515221e9aed0bee7b9..2b1a901ce88a2c18f7151096c69c2dd98d0b0895 100644 (file)
@@ -50,7 +50,7 @@ void          trigger_exec_free(void);
 
 bool           trigger_enabled(void);
 
-fr_pair_t      *trigger_args_afrom_server(TALLOC_CTX *ctx, char const *server, uint16_t port);
+fr_pair_list_t *trigger_args_afrom_server(TALLOC_CTX *ctx, char const *server, uint16_t port);
 
 typedef int (*fr_trigger_worker_t)(request_t *request, module_method_t process, void *ctx);
 extern fr_trigger_worker_t trigger_worker_request_add;