aboutsummaryrefslogtreecommitdiffstats
path: root/res/res_config_odbc.c
diff options
context:
space:
mode:
authorcitats <citats@f38db490-d61c-443f-a65b-d21fe96a405b>2004-07-08 20:16:28 +0000
committercitats <citats@f38db490-d61c-443f-a65b-d21fe96a405b>2004-07-08 20:16:28 +0000
commit5a0c2274bf2db8b28d697ab7c9e5f83c8889413d (patch)
tree0c36044f7f7f7e7699ad9916166b0e4c95c1f41a /res/res_config_odbc.c
parent679cc7f487b326536a6052167e3c95e8465fd3d1 (diff)
Massive res_config_odbc.c formatting cleanups from bkw_. Thanks!!!
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3405 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'res/res_config_odbc.c')
-rwxr-xr-xres/res_config_odbc.c330
1 files changed, 142 insertions, 188 deletions
diff --git a/res/res_config_odbc.c b/res/res_config_odbc.c
index c836dbdcd..60de7a41d 100755
--- a/res/res_config_odbc.c
+++ b/res/res_config_odbc.c
@@ -9,7 +9,6 @@
* Copyright (C) 2004 Anthony Minessale II <anthmct@yahoo.com>
*/
-
#include <asterisk/file.h>
#include <asterisk/logger.h>
#include <asterisk/channel.h>
@@ -23,231 +22,186 @@
#include <string.h>
#include <asterisk/res_odbc.h>
-
-
-static char *tdesc = "Odbc Configuration";
+static char *tdesc = "ODBC Configuration";
static struct ast_config_reg reg1;
-
STANDARD_LOCAL_USER;
LOCAL_USER_DECL;
-
-static struct ast_config *config_odbc(char *file, struct ast_config *new_config_s,struct ast_category **new_cat_p,struct ast_variable **new_v_p,int recur
-#ifdef PRESERVE_COMMENTS
- ,struct ast_comment_struct *acs
-#endif
-
- ) {
-
-
-
-
- struct ast_config *config,*new;
- struct ast_variable *v,*cur_v,*new_v;
- struct ast_category *cur_cat,*new_cat;
- char table[128];
- char connection[128];
- int configured=0, res=0;
- odbc_obj *obj;
- SQLINTEGER err,commented,cat_metric,var_metric;
- SQLBIGINT id;
- char sql[255],filename[128],category[128],var_name[128],var_val[128];
- SQLSMALLINT rowcount;
- SQLHSTMT stmt;
- char last[80];
- int cat_started=0;
- int var_started=0;
-
-
- if(new_config_s) {
- new = new_config_s;
- cat_started++;
- }
- else
- new = ast_new_config();
-
- last[0] = '\0';
-
- if(!file || !strcmp(file,"res_config_odbc.conf"))
- return NULL; // cant configure myself with myself !
-
- config = ast_load("res_config_odbc.conf");
-
- if(config) {
- for(v = ast_variable_browse(config,"settings");v;v=v->next) {
- if(!strcmp(v->name,"table")) {
- strncpy(table,v->value,sizeof(table));
- configured++;
- }
- else if(!strcmp(v->name,"connection")) {
- strncpy(connection,v->value,sizeof(connection));
- configured++;
- }
- }
- ast_destroy(config);
- }
-
- if(configured < 2)
- return NULL;
-
- obj = fetch_odbc_obj(connection);
- if(!obj)
- return NULL;
-
-
-
-
-
- res=SQLAllocHandle(SQL_HANDLE_STMT,obj->con, &stmt);
-
- SQLBindCol(stmt,1,SQL_C_ULONG,&id,sizeof(id),&err);
- SQLBindCol(stmt,2,SQL_C_ULONG,&cat_metric,sizeof(cat_metric),&err);
- SQLBindCol(stmt,3,SQL_C_ULONG,&var_metric,sizeof(var_metric),&err);
- SQLBindCol(stmt,4,SQL_C_ULONG,&commented,sizeof(commented),&err);
- SQLBindCol(stmt,5,SQL_C_CHAR,&filename,sizeof(filename),&err);
- SQLBindCol(stmt,6,SQL_C_CHAR,&category,sizeof(category),&err);
- SQLBindCol(stmt,7,SQL_C_CHAR,&var_name,sizeof(var_name),&err);
- SQLBindCol(stmt,8,SQL_C_CHAR,&var_val,sizeof(var_val),&err);
-
- sprintf(sql,"select * from %s where filename='%s' and commented=0 order by filename,cat_metric desc,var_metric asc,id",table,file);
- res = SQLExecDirect(stmt,sql,SQL_NTS);
-
- if ((res != SQL_SUCCESS) && (res != SQL_SUCCESS_WITH_INFO)) {
- ast_log(LOG_WARNING,"SQL select error!\n[%s]\n\n",sql);
- return NULL;
- }
-
- res=SQLNumResultCols(stmt,&rowcount);
-
- if ((res != SQL_SUCCESS) && (res != SQL_SUCCESS_WITH_INFO)) {
- ast_log(LOG_WARNING,"SQL select error!\n[%s]\n\n",sql);
- return NULL;
- }
-
-
- if(rowcount) {
-
- res=SQLFetch(stmt);
- cat_started=0;
-
-
-
- cur_cat = *new_cat_p;
- cur_v = *new_v_p;
-
- if(cur_cat)
- cat_started=1;
- if(cur_v)
- var_started=1;
-
-
-
- while(res != SQL_NO_DATA) {
- //ast_log(LOG_NOTICE,"found %s %s %s\n",filename,var_name,var_val);
- // build the config sql table probably needs to be improved!
-
- if(!strcmp(var_name,"#include") && recur < MAX_INCLUDE_LEVEL) {
-
- config_odbc(var_val,new,&cur_cat,&cur_v,recur + 1
+static struct ast_config *config_odbc (char *file, struct ast_config *new_config_s, struct ast_category **new_cat_p, struct ast_variable **new_v_p, int recur
#ifdef PRESERVE_COMMENTS
- ,acs
+ , struct ast_comment_struct *acs
#endif
- );
-
- }
- else {
-
-
-
- if(strcmp(last,category)) {
- strcpy(last,category);
- new_cat = (struct ast_category *) ast_new_category(category);
-
- if(!cat_started) {
- cat_started++;
- new->root = new_cat;
- cur_cat=new->root;
- }
- else {
- cur_cat->next = new_cat;
- cur_cat = cur_cat->next;
- }
- var_started=0;
-
+)
+{
+ struct ast_config *config, *new;
+ struct ast_variable *v, *cur_v, *new_v;
+ struct ast_category *cur_cat, *new_cat;
+ char table[128];
+ char connection[128];
+ int configured = 0, res = 0;
+ odbc_obj *obj;
+ SQLINTEGER err, commented, cat_metric, var_metric;
+ SQLBIGINT id;
+ char sql[255], filename[128], category[128], var_name[128], var_val[128];
+ SQLSMALLINT rowcount;
+ SQLHSTMT stmt;
+ char last[80];
+ int cat_started = 0;
+ int var_started = 0;
+
+ if (new_config_s) {
+ new = new_config_s;
+ cat_started++;
+ } else {
+ new = ast_new_config ();
}
- new_v = ast_new_variable(var_name,var_val);
-
-
- if(!var_started) {
- var_started++;
- cur_cat->root = new_v;
- cur_v = cur_cat->root;
+ last[0] = '\0';
+
+ if (!file || !strcmp (file, "res_config_odbc.conf"))
+ return NULL; // cant configure myself with myself !
+
+ config = ast_load ("res_config_odbc.conf");
+
+ if (config) {
+ for (v = ast_variable_browse (config, "settings"); v; v = v->next) {
+ if (!strcmp (v->name, "table")) {
+ strncpy (table, v->value, sizeof (table));
+ configured++;
+ } else if (!strcmp (v->name, "connection")) {
+ strncpy (connection, v->value, sizeof (connection));
+ configured++;
+ }
+ }
+ ast_destroy (config);
}
- else {
- cur_v->next = new_v;
- cur_v = cur_v->next;
+
+ if (configured < 2)
+ return NULL;
+
+ obj = fetch_odbc_obj (connection);
+ if (!obj)
+ return NULL;
+
+ res = SQLAllocHandle (SQL_HANDLE_STMT, obj->con, &stmt);
+
+ SQLBindCol (stmt, 1, SQL_C_ULONG, &id, sizeof (id), &err);
+ SQLBindCol (stmt, 2, SQL_C_ULONG, &cat_metric, sizeof (cat_metric), &err);
+ SQLBindCol (stmt, 3, SQL_C_ULONG, &var_metric, sizeof (var_metric), &err);
+ SQLBindCol (stmt, 4, SQL_C_ULONG, &commented, sizeof (commented), &err);
+ SQLBindCol (stmt, 5, SQL_C_CHAR, &filename, sizeof (filename), &err);
+ SQLBindCol (stmt, 6, SQL_C_CHAR, &category, sizeof (category), &err);
+ SQLBindCol (stmt, 7, SQL_C_CHAR, &var_name, sizeof (var_name), &err);
+ SQLBindCol (stmt, 8, SQL_C_CHAR, &var_val, sizeof (var_val), &err);
+
+ sprintf (sql, "select * from %s where filename='%s' and commented=0 order by filename,cat_metric desc,var_metric asc,id", table, file);
+ res = SQLExecDirect (stmt, sql, SQL_NTS);
+
+ if ((res != SQL_SUCCESS) && (res != SQL_SUCCESS_WITH_INFO)) {
+ ast_log (LOG_WARNING, "SQL select error!\n[%s]\n\n", sql);
+ return NULL;
}
- }
-
- // next row
- res=SQLFetch(stmt);
- }
- SQLFreeHandle(SQL_HANDLE_STMT,stmt);
- }
- else
- ast_log(LOG_NOTICE,"found nothing\n");
+ res = SQLNumResultCols (stmt, &rowcount);
-
+ if ((res != SQL_SUCCESS) && (res != SQL_SUCCESS_WITH_INFO)) {
+ ast_log (LOG_WARNING, "SQL select error!\n[%s]\n\n", sql);
+ return NULL;
+ }
-
-
+ if (rowcount) {
+ res = SQLFetch (stmt);
+ cat_started = 0;
+ cur_cat = *new_cat_p;
+ cur_v = *new_v_p;
-
- return new;
-
-}
+ if (cur_cat)
+ cat_started = 1;
+ if (cur_v)
+ var_started = 1;
+ while (res != SQL_NO_DATA) {
+ if (!strcmp (var_name, "#include") && recur < MAX_INCLUDE_LEVEL) {
+ config_odbc (var_val, new, &cur_cat, &cur_v, recur + 1
+#ifdef PRESERVE_COMMENTS
+ , acs
+#endif
+ );
+ } else {
+ if (strcmp (last, category)) {
+ strcpy (last, category);
+ new_cat = (struct ast_category *) ast_new_category (category);
+
+ if (!cat_started) {
+ cat_started++;
+ new->root = new_cat;
+ cur_cat = new->root;
+ } else {
+ cur_cat->next = new_cat;
+ cur_cat = cur_cat->next;
+ }
+ var_started = 0;
+
+ }
+
+ new_v = ast_new_variable (var_name, var_val);
+
+ if (!var_started) {
+ var_started++;
+ cur_cat->root = new_v;
+ cur_v = cur_cat->root;
+ } else {
+ cur_v->next = new_v;
+ cur_v = cur_v->next;
+ }
+ }
+
+ // next row
+ res = SQLFetch (stmt);
+ }
+
+ SQLFreeHandle (SQL_HANDLE_STMT, stmt);
+ } else {
+ ast_log (LOG_NOTICE, "found nothing\n");
+ }
+ return new;
+}
-int unload_module(void)
+int unload_module (void)
{
- ast_cust_config_deregister(&reg1);
- ast_log(LOG_NOTICE,"res_config_odbc unloaded.\n");
+ ast_cust_config_deregister (&reg1);
+ ast_log (LOG_NOTICE, "res_config_odbc unloaded.\n");
STANDARD_HANGUP_LOCALUSERS;
return 0;
}
-int load_module(void)
+int load_module (void)
{
-
- memset(&reg1,0,sizeof(struct ast_config_reg));
- strcpy(reg1.name,"odbc");
+ memset (&reg1, 0, sizeof (struct ast_config_reg));
+ strcpy (reg1.name, "odbc");
reg1.func = config_odbc;
- ast_cust_config_register(&reg1);
- ast_log(LOG_NOTICE,"res_config_odbc loaded.\n");
+ ast_cust_config_register (&reg1);
+ ast_log (LOG_NOTICE, "res_config_odbc loaded.\n");
return 0;
}
-char *description(void)
+char *description (void)
{
- return tdesc;
+ return tdesc;
}
-int usecount(void)
+int usecount (void)
{
/* never unload a config module */
return 1;
}
-char *key()
+char *key ()
{
- return ASTERISK_GPL_KEY;
+ return ASTERISK_GPL_KEY;
}
-
-