Compiles with new ICRADIUS code, but BADLY BROKEN. DO NOT USE YET :)
[freeradius.git] / src / modules / rlm_sql / sql_module.h
1 /*
2  * sql_module.h - MySQL header for FreeRADIUS SQL module
3  *
4  * Mike Machado <mike@innercite.com>
5  */
6
7 #include        <mysql/mysql.h>
8 #include        "conf.h"
9
10 typedef MYSQL_ROW       SQL_ROW;
11
12 typedef struct sql_config {
13         char sql_server[40];
14         char sql_login[20];
15         char sql_password[20];
16         char sql_db[20];
17         char sql_acct_table[MAX_TABLE_LEN];
18         char sql_authcheck_table[MAX_TABLE_LEN];
19         char sql_authreply_table[MAX_TABLE_LEN];
20         char sql_groupcheck_table[MAX_TABLE_LEN];
21         char sql_groupreply_table[MAX_TABLE_LEN];
22         char sql_usergroup_table[MAX_TABLE_LEN];
23         char sql_realm_table[MAX_TABLE_LEN];
24         char sql_realmgroup_table[MAX_TABLE_LEN];
25         char sql_nas_table[MAX_TABLE_LEN];
26         char sql_dict_table[MAX_TABLE_LEN];
27         int  sensitiveusername;
28         int  sqltrace;
29         int  deletestalesessions;
30         int  max_sql_socks;
31 } SQL_CONFIG;
32  
33 typedef struct sql_socket {
34         MYSQL           *sock;
35         MYSQL           conn;
36         MYSQL_RES       *result;
37         int             id;
38         int             in_use;
39         struct timeval  tv;
40 } SQLSOCK;
41  
42 typedef struct sql {
43         SQL_CONFIG *config;
44         SQLSOCK *socks[MAX_SQL_SOCKS];
45 } SQL;
46
47
48 SQLSOCK *sql_create_socket(void);
49 int sql_checksocket(const char *facility);
50 int sql_query(SQLSOCK *socket, char *querystr);
51 int sql_select_query(SQLSOCK *socket, char *querystr);
52 int sql_store_result(SQLSOCK *socket);
53 int sql_num_fields(SQLSOCK *socket);
54 int sql_num_rows(SQLSOCK *socket);
55 SQL_ROW sql_fetch_row(SQLSOCK *socket);
56 void sql_free_result(SQLSOCK *socket);
57 char *sql_error(SQLSOCK *socket);
58 void sql_close(SQLSOCK *socket);
59 void sql_finish_query(SQLSOCK *socket);
60 void sql_finish_select_query(SQLSOCK *socket);
61 int sql_affected_rows(SQLSOCK *socket);
62 int sql_escape_string(char *to, char *from, int length);