⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rlm_sql.h

📁 RADIUS认证协议
💻 H
字号:
/****************************************************************************  rlm_sql.h                          rlm_sql - FreeRADIUS SQL Module      **                                                                          **      Header for main SQL module file                                     **                                                                          **                                     Mike Machado <mike@innercite.com>    ****************************************************************************/#ifndef _RLM_SQL_H#define _RLM_SQL_H#ifdef HAVE_PTHREAD_H#include        <pthread.h>#endif#include	<ltdl.h>#include "conf.h"#include "conffile.h"#define SQLSOCK_LOCKED		0#define SQLSOCK_UNLOCKED	1#define PW_VP_USERDATA		1#define PW_VP_GROUPDATA		2#define PW_VP_REALMDATA		3#define PW_ITEM_CHECK			0#define PW_ITEM_REPLY			1typedef char** SQL_ROW;typedef struct sql_socket {	int     id;#ifdef HAVE_PTHREAD_H	pthread_mutex_t mutex;#endif	struct sql_socket *next;	enum { sockconnected, sockunconnected } state;	void	*conn;	SQL_ROW row;} SQLSOCK;typedef struct rlm_sql_module_t {	const char *name;	int (*sql_init_socket)(SQLSOCK *sqlsocket, SQL_CONFIG *config);	int (*sql_destroy_socket)(SQLSOCK *sqlsocket, SQL_CONFIG *config);	int (*sql_query)(SQLSOCK *sqlsocket, SQL_CONFIG *config, char *query);	int (*sql_select_query)(SQLSOCK *sqlsocket, SQL_CONFIG *config, char *query);	int (*sql_store_result)(SQLSOCK *sqlsocket, SQL_CONFIG *config);	int (*sql_num_fields)(SQLSOCK *sqlsocket, SQL_CONFIG *config);	int (*sql_num_rows)(SQLSOCK *sqlsocket, SQL_CONFIG *config);	int (*sql_fetch_row)(SQLSOCK *sqlsocket, SQL_CONFIG *config);	int (*sql_free_result)(SQLSOCK *sqlsocket, SQL_CONFIG *config);	char *(*sql_error)(SQLSOCK *sqlsocket, SQL_CONFIG *config);	int (*sql_close)(SQLSOCK *sqlsocket, SQL_CONFIG *config);	int (*sql_finish_query)(SQLSOCK *sqlsocket, SQL_CONFIG *config);	int (*sql_finish_select_query)(SQLSOCK *sqlsocket, SQL_CONFIG *config);	int (*sql_affected_rows)(SQLSOCK *sqlsocket, SQL_CONFIG *config);} rlm_sql_module_t;typedef struct sql_inst {	time_t		connect_after;	SQLSOCK		*sqlpool;	SQLSOCK		*last_used;	SQL_CONFIG	*config;	lt_dlhandle handle;	rlm_sql_module_t *module;} SQL_INST;int     sql_init_socketpool(SQL_INST * inst);void    sql_poolfree(SQL_INST * inst);int     sql_close_socket(SQL_INST *inst, SQLSOCK * sqlsocket);SQLSOCK *sql_get_socket(SQL_INST * inst);int     sql_release_socket(SQL_INST * inst, SQLSOCK * sqlsocket);int     sql_userparse(VALUE_PAIR ** first_pair, SQL_ROW row, int mode);int     sql_read_realms(SQLSOCK * sqlsocket);int     sql_getvpdata(SQL_INST * inst, SQLSOCK * sqlsocket, VALUE_PAIR **pair, char *query, int mode);int     sql_read_naslist(SQLSOCK * sqlsocket);int     sql_read_clients(SQLSOCK * sqlsocket);int     sql_dict_init(SQLSOCK * sqlsocket);void    query_log(REQUEST *request, SQL_INST * inst, char *querystr);int	rlm_sql_select_query(SQLSOCK *sqlsocket, SQL_INST *inst, char *query);int	rlm_sql_query(SQLSOCK *sqlsocket, SQL_INST *inst, char *query);int	rlm_sql_fetch_row(SQLSOCK *sqlsocket, SQL_INST *inst);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -