]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Add per thread SQL module data
authorNick Porter <nick@portercomputing.co.uk>
Fri, 3 May 2024 08:50:28 +0000 (09:50 +0100)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Fri, 7 Jun 2024 02:26:58 +0000 (22:26 -0400)
For holding trunk connection

src/modules/rlm_sql/rlm_sql.c
src/modules/rlm_sql/rlm_sql.h

index 8bc7b39f3e33e7a2a77aa6dcfe4507b3ced96a37..b1784379124f152f7438192c6baf73490f23a371 100644 (file)
@@ -2013,7 +2013,8 @@ module_rlm_t rlm_sql = {
                .config         = module_config,
                .bootstrap      = mod_bootstrap,
                .instantiate    = mod_instantiate,
-               .detach         = mod_detach
+               .detach         = mod_detach,
+               .thread_inst_size       = sizeof(rlm_sql_thread_t),
        },
        .bindings = (module_method_binding_t[]){
                /*
index eb89482138acbfdad9d2b2d76163781735b43f3b..e48cdb4f221be3a697633168fcb962d828431a44 100644 (file)
@@ -31,6 +31,7 @@ RCSIDH(rlm_sql_h, "$Id$")
 #include <freeradius-devel/server/pool.h>
 #include <freeradius-devel/server/modpriv.h>
 #include <freeradius-devel/server/exfile.h>
+#include <freeradius-devel/server/trunk.h>
 #include <freeradius-devel/unlang/function.h>
 
 #define FR_ITEM_CHECK 0
@@ -98,6 +99,14 @@ typedef struct {
 
 typedef struct sql_inst rlm_sql_t;
 
+/*
+ *     Per-thread instance data structure
+ */
+typedef struct {
+       fr_trunk_t              *trunk;                         //!< Trunk connection for this thread.
+       rlm_sql_t const         *inst;                          //!< Module instance data.
+} rlm_sql_thread_t;
+
 typedef struct {
        void                    *conn;                          //!< Database specific connection handle.
        rlm_sql_row_t           row;                            //!< Row data from the last query.