import from HEAD
[freeradius.git] / src / modules / rlm_sql / drivers / rlm_sql_firebird / sql_fbapi.h
1 /*
2  * sql_fbapi.h  Part of Firebird rlm_sql driver
3  *
4  * Copyright 2006  Vitaly Bodzhgua <vitaly@easteara.net>
5  */
6
7 #ifndef _SQL_FBAPI_H_
8 #define _SQL_FBAPI_H_
9
10 #include <stdlib.h>
11 #include <string.h>
12 #include <ibase.h>
13
14 #include "radiusd.h"
15 #include "rlm_sql.h"
16
17 #define IS_ISC_ERROR(status)  (status[0] == 1 && status[1])
18
19 #define DEADLOCK_TRYS 2
20 #define DEADLOCK_SQL_CODE -913
21
22 typedef struct rlm_sql_firebird_sock {
23         isc_db_handle dbh;
24         isc_stmt_handle stmt;
25         isc_tr_handle trh;
26         ISC_STATUS status[20];
27         ISC_LONG sql_code;
28         XSQLDA *sqlda_out;
29         int sql_dialect;
30         int statement_type;
31         char *tpb;
32         int tpb_len;
33         char *dpb;
34         int dpb_len;
35         char *lasterror;
36         
37         SQL_ROW row;
38         int *row_sizes;
39         int row_fcount;
40         
41 } rlm_sql_firebird_sock;
42
43
44 int fb_free_result(rlm_sql_firebird_sock *sock);
45 int fb_lasterror(rlm_sql_firebird_sock *);
46 int fb_init_socket(rlm_sql_firebird_sock *sock);
47 int fb_connect(rlm_sql_firebird_sock * sock,SQL_CONFIG *config);
48 int fb_sql_query(rlm_sql_firebird_sock * sock,char *sqlstr);
49 int fb_fetch(rlm_sql_firebird_sock * sock);
50 void fb_destroy_socket(rlm_sql_firebird_sock *);
51 void fb_store_row(rlm_sql_firebird_sock *sock);
52
53 #endif