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