1 /***************************************************************************
2 * rlm_sql.h rlm_sql - FreeRADIUS SQL Module *
4 * Header for main SQL module file *
6 * Mike Machado <mike@innercite.com> *
7 ***************************************************************************/
8 #include "sql_module.h"
11 #define PW_VP_USERDATA 1
12 #define PW_VP_GROUPDATA 2
13 #define PW_VP_REALMDATA 3
15 typedef struct sqlrec {
16 char AcctSessionId[SQLBIGREC];
17 char UserName[SQLBIGREC];
18 char Realm[SQLBIGREC];
19 char NASIPAddress[SQLLILREC];
20 unsigned long NASPortId;
21 char NASPortType[SQLBIGREC];
22 char AcctStatusType[SQLBIGREC];
23 unsigned int AcctStatusTypeId;
24 char AcctTimeStamp[20];
25 unsigned long AcctSessionTime;
26 char AcctAuthentic[SQLBIGREC];
27 char ConnectInfo[SQLBIGREC];
28 unsigned long AcctInputOctets;
29 unsigned long AcctOutputOctets;
30 char CalledStationId[SQLLILREC];
31 char CallingStationId[SQLLILREC];
32 char AcctTerminateCause[SQLBIGREC];
33 char ServiceType[SQLBIGREC];
34 char FramedProtocol[SQLBIGREC];
35 char FramedIPAddress[SQLLILREC];
36 unsigned long AcctDelayTime;
39 int sql_init(CONF_PARSER *module_config, SQL_CONFIG *config, int reload);
40 int sql_init_socket(int reload);
41 int sql_close_socket(SQLSOCK *socket);
42 SQLSOCK *sql_get_socket(void);
43 int sql_release_socket(SQLSOCK *socket);
44 int sql_save_acct(SQLSOCK *socket, SQLACCTREC *sqlrecord);
45 int sql_userparse(VALUE_PAIR **first_pair, SQL_ROW row, int mode);
46 int sql_read_realms(SQLSOCK *socket);
47 int sql_getvpdata(SQLSOCK *socket, char *table, VALUE_PAIR **vp, char *user, int mode);
48 int sql_check_multi(SQLSOCK *socket, char *name, VALUE_PAIR *request, int maxsimul);
49 int sql_read_naslist(SQLSOCK *socket);
50 int sql_read_clients(SQLSOCK *socket);
51 int sql_dict_init(SQLSOCK *socket);