all: updated FSF address in GPL text
[sip-router] / modules / db_unixodbc / db_unixodbc.c
1 /* 
2  * $Id$ 
3  *
4  * UNIXODBC module interface
5  *
6  * Copyright (C) 2005-2006 Marco Lorrai
7  * Copyright (C) 2008 1&1 Internet AG
8  *
9  * This file is part of Kamailio, a free SIP server.
10  *
11  * Kamailio is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation; either version 2 of the License, or
14  * (at your option) any later version
15  *
16  * Kamailio is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License 
22  * along with this program; if not, write to the Free Software 
23  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
24  *
25  *
26  * History:
27  * --------
28  *  2005-12-01  initial commit (chgen)
29  */
30
31 #include "../../sr_module.h"
32 #include "../../lib/srdb1/db.h"
33 #include "../../lib/srdb1/db_query.h"
34 #include "dbase.h"
35 #include "db_unixodbc.h"
36
37 int ping_interval = 5 * 60; /* Default is 5 minutes */
38 int auto_reconnect = 1;     /* Default is enabled */
39 int use_escape_common = 0;  /* Enable common escaping */
40
41 MODULE_VERSION
42
43 int db_unixodbc_bind_api(db_func_t *dbb);
44 int unixodbc_mod_init(void);
45
46 /*
47  * MySQL database module interface
48  */
49 static cmd_export_t cmds[] = {
50         {"db_bind_api",    (cmd_function)db_unixodbc_bind_api,    0, 0, 0, 0},
51         {0, 0, 0, 0, 0, 0}
52 };
53
54
55 /*
56  * Exported parameters
57  */
58 static param_export_t params[] = {
59         {"ping_interval",     INT_PARAM, &ping_interval},
60         {"auto_reconnect",    INT_PARAM, &auto_reconnect},
61         {"use_escape_common", INT_PARAM, &use_escape_common},
62         {0, 0, 0}
63 };
64
65
66 struct module_exports exports = {       
67         "db_unixodbc",
68         DEFAULT_DLFLAGS, /* dlopen flags */
69         cmds,
70         params,             /*  module parameters */
71         0,                  /* exported statistics */
72         0,                  /* exported MI functions */
73         0,                  /* exported pseudo-variables */
74         0,                  /* extra processes */
75         unixodbc_mod_init,  /* module initialization function */
76         0,                  /* response function*/
77         0,                  /* destroy function */
78         0                   /* per-child init function */
79 };
80
81 int db_unixodbc_bind_api(db_func_t *dbb)
82 {
83         if(dbb==NULL)
84                 return -1;
85
86         memset(dbb, 0, sizeof(db_func_t));
87
88         dbb->use_table        = db_unixodbc_use_table;
89         dbb->init             = db_unixodbc_init;
90         dbb->close            = db_unixodbc_close;
91         dbb->query            = db_unixodbc_query;
92         dbb->fetch_result     = db_unixodbc_fetch_result;
93         dbb->raw_query        = db_unixodbc_raw_query;
94         dbb->free_result      = db_unixodbc_free_result;
95         dbb->insert           = db_unixodbc_insert;
96         dbb->delete           = db_unixodbc_delete; 
97         dbb->update           = db_unixodbc_update;
98         dbb->replace          = db_unixodbc_replace;
99
100         return 0;
101 }
102
103 int mod_register(char *path, int *dlflags, void *p1, void *p2)
104 {
105         if(db_api_init()<0)
106                 return -1;
107         return 0;
108 }
109
110 int unixodbc_mod_init(void)
111 {
112         return 0;
113 }
114