29 |
|
|
30 |
|
|
31 |
struct sql_connection { |
struct sql_connection { |
32 |
struct sql_connection *next; |
int interface; /* One of SQLT_ values */ |
33 |
int type; |
int type; /* One of SQL_ values */ |
34 |
void *owner; |
int connected; /* Connected to the database? */ |
35 |
int connected; |
int destroy_on_close; /* Should the connection be closed upon |
36 |
int delete_on_close; |
the end of a transaction */ |
37 |
time_t last_used; |
time_t last_used; /* When it was lastly used */ |
38 |
void *data; /* connection - specific data */ |
void *data; /* connection-specific data */ |
39 |
}; |
}; |
40 |
|
|
41 |
typedef struct { |
typedef struct { |
75 |
void rad_sql_shutdown(); |
void rad_sql_shutdown(); |
76 |
int disp_sql_interface_index(char *name); |
int disp_sql_interface_index(char *name); |
77 |
|
|
78 |
|
#ifdef RADIUS_SERVER_GUILE |
79 |
|
SCM sql_exec_query(int type, char *query); |
80 |
|
#endif |
81 |
|
|
82 |
/* Dispatcher routines */ |
/* Dispatcher routines */ |
83 |
int disp_sql_reconnect(int interface, int conn_type, struct sql_connection *); |
int disp_sql_reconnect(int interface, int conn_type, struct sql_connection *conn); |
84 |
void disp_sql_disconnect(int interface, struct sql_connection *); |
void disp_sql_disconnect(struct sql_connection *conn); |
85 |
int disp_sql_query(int interface, struct sql_connection *, |
int disp_sql_query(struct sql_connection *conn, char *query, int *report_cnt); |
86 |
char *query, int *report_cnt); |
char *disp_sql_getpwd(struct sql_connection *conn, char *query); |
87 |
char * disp_sql_getpwd(int interface, struct sql_connection *, char *query); |
void *disp_sql_exec(struct sql_connection *conn, char *query); |
88 |
void * disp_sql_exec(int interface, struct sql_connection *conn, char *query); |
char *disp_sql_column(struct sql_connection *conn, void *data, size_t ncol); |
89 |
char * disp_sql_column(int interface, void *data, int ncol); |
int disp_sql_next_tuple(struct sql_connection *conn, void *data); |
90 |
int disp_sql_next_tuple(int interface, struct sql_connection *conn, void *data); |
void disp_sql_free(struct sql_connection *conn, void *data); |
91 |
void disp_sql_free(int interface, struct sql_connection *conn, void *data); |
int disp_sql_num_tuples(struct sql_connection *conn, void *data, size_t *np); |
92 |
|
int disp_sql_num_columns(struct sql_connection *conn, void *data, size_t *np); |
93 |
|
|
94 |
typedef struct { |
typedef struct { |
95 |
char *name; |
char *name; |
99 |
int (*query)(struct sql_connection *, char *query, int *report_cnt); |
int (*query)(struct sql_connection *, char *query, int *report_cnt); |
100 |
char *(*getpwd)(struct sql_connection *, char *query); |
char *(*getpwd)(struct sql_connection *, char *query); |
101 |
void *(*exec_query)(struct sql_connection *conn, char *query); |
void *(*exec_query)(struct sql_connection *conn, char *query); |
102 |
char *(*column)(void *data, int ncol); |
char *(*column)(void *data, size_t ncol); |
103 |
int (*next_tuple)(struct sql_connection *conn, void *data); |
int (*next_tuple)(struct sql_connection *conn, void *data); |
104 |
void (*free)(struct sql_connection *conn, void *data); |
void (*free)(struct sql_connection *conn, void *data); |
105 |
|
int (*n_tuples)(struct sql_connection *conn, void *data, size_t *np); |
106 |
|
int (*n_columns)(struct sql_connection *conn, void *data, size_t *np); |
107 |
} SQL_DISPATCH_TAB; |
} SQL_DISPATCH_TAB; |
108 |
|
|
109 |
#ifdef USE_SQL_MYSQL |
#ifdef USE_SQL_MYSQL |