]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Add trigger_args to rlm_sql
authorNick Porter <nick@portercomputing.co.uk>
Fri, 29 Aug 2025 16:01:13 +0000 (17:01 +0100)
committerNick Porter <nick@portercomputing.co.uk>
Fri, 29 Aug 2025 16:01:13 +0000 (17:01 +0100)
src/modules/rlm_sql/rlm_sql.c
src/modules/rlm_sql/rlm_sql.h

index 1683dc25e5b94972ce4ac7c85a40e8836b1f1795..2b9838d6904b4a488a9f306235546a66a0c9d584 100644 (file)
@@ -35,6 +35,7 @@ RCSID("$Id$")
 #include <freeradius-devel/server/module_rlm.h>
 #include <freeradius-devel/server/pairmove.h>
 #include <freeradius-devel/server/rcode.h>
+#include <freeradius-devel/server/trigger.h>
 #include <freeradius-devel/util/debug.h>
 #include <freeradius-devel/util/dict.h>
 #include <freeradius-devel/util/skip.h>
@@ -2209,7 +2210,16 @@ static int mod_instantiate(module_inst_ctx_t const *mctx)
                return -1;
        }
 
-       return 0;
+       if (!inst->config.trunk_conf.conn_triggers) return 0;
+
+       inst->trigger_args = fr_pair_list_alloc(inst);
+       return module_trigger_args_build(inst->trigger_args, inst->trigger_args, cf_section_find(conf, "pool", NULL),
+                                       &(module_trigger_args_t) {
+                                               .module = inst->mi->module->name,
+                                               .name = inst->name,
+                                               .server = inst->config.sql_server,
+                                               .port = inst->config.sql_port
+                                       });
 }
 
 static int mod_bootstrap(module_inst_ctx_t const *mctx)
index f8214adc366ee82e5ca8365feb92c9a2b35268ad..f60a9b1a6de7dcbc41f15941c42a17d67f348be0 100644 (file)
@@ -248,6 +248,8 @@ struct sql_inst {
        fr_dict_attr_t const            *group_da;              //!< Group dictionary attribute.
        fr_dict_attr_t const            *query_number_da;       //!< Query number attribute.
        module_instance_t const         *mi;                    //!< Module instance data for thread lookups.
+
+       fr_pair_list_t                  *trigger_args;          //!< Pairs passed to trigger request.
 };
 
 unlang_action_t        sql_get_map_list(unlang_result_t *p_result, request_t *request, fr_sql_map_ctx_t *map_ctx, trunk_t *trunk);