This should simplify rlm_sqlippool, and anything else that
needs access to SQL get/release socket, and set_user_name
memset(inst->config, 0, sizeof(SQL_CONFIG));
/*
+ * Export these methods, too. This avoids RTDL_GLOBAL.
+ */
+ inst->sql_set_user = sql_set_user;
+ inst->sql_get_socket = sql_get_socket;
+ inst->sql_release_socket = sql_release_socket;
+
+ /*
* If the configuration parameters can't be parsed, then
* fail.
*/
int (*sql_affected_rows)(SQLSOCK *sqlsocket, SQL_CONFIG *config);
} rlm_sql_module_t;
-typedef struct sql_inst {
+typedef struct sql_inst SQL_INST;
+
+struct sql_inst {
time_t connect_after;
SQLSOCK *sqlpool;
SQLSOCK *last_used;
lt_dlhandle handle;
rlm_sql_module_t *module;
-} SQL_INST;
+
+ int (*sql_set_user)(SQL_INST *inst, REQUEST *request, char *sqlusername, const char *username);
+ SQLSOCK *(*sql_get_socket)(SQL_INST * inst);
+ int (*sql_release_socket)(SQL_INST * inst, SQLSOCK * sqlsocket);
+};
typedef struct sql_grouplist {
char groupname[MAX_STRING_LEN];