cdr_mysql: my_connect_db(): reduce indentation

ASTERISK-27572

Change-Id: I00bd5363ac94c764c56d8626a5945ed7f3934fcb
changes/20/8920/2
Tzafrir Cohen 8 years ago committed by Oron Peled
parent 2e44adf1c3
commit f4c360143b

@ -492,90 +492,93 @@ static int my_connect_db(struct ast_config *cfg)
ast_log(LOG_ERROR, "Failed to connect to mysql database %s on %s.\n", ast_str_buffer(dbname), ast_str_buffer(hostname)); ast_log(LOG_ERROR, "Failed to connect to mysql database %s on %s.\n", ast_str_buffer(dbname), ast_str_buffer(hostname));
connected = 0; connected = 0;
records = 0; records = 0;
} else {
ast_debug(1, "Successfully connected to MySQL database.\n");
connected = 1;
records = 0;
connect_time = time(NULL);
/* Get table description */ return AST_MODULE_LOAD_SUCCESS; /* May be reconnected later */
snprintf(sqldesc, sizeof(sqldesc), "DESC %s", dbtable ? ast_str_buffer(dbtable) : "cdr"); }
if (mysql_query(&mysql, sqldesc)) {
ast_log(LOG_ERROR, "Unable to query table description!! Logging disabled.\n");
mysql_close(&mysql);
connected = 0;
return AST_MODULE_LOAD_DECLINE; ast_debug(1, "Successfully connected to MySQL database.\n");
} connected = 1;
records = 0;
connect_time = time(NULL);
if (!(result = mysql_store_result(&mysql))) { /* Get table description */
ast_log(LOG_ERROR, "Unable to query table description!! Logging disabled.\n"); snprintf(sqldesc, sizeof(sqldesc), "DESC %s", dbtable ? ast_str_buffer(dbtable) : "cdr");
mysql_close(&mysql); if (mysql_query(&mysql, sqldesc)) {
connected = 0; ast_log(LOG_ERROR, "Unable to query table description!! Logging disabled.\n");
mysql_close(&mysql);
connected = 0;
return AST_MODULE_LOAD_DECLINE; return AST_MODULE_LOAD_DECLINE;
} }
while ((row = mysql_fetch_row(result))) { if (!(result = mysql_store_result(&mysql))) {
struct column *entry; ast_log(LOG_ERROR, "Unable to query table description!! Logging disabled.\n");
char *cdrvar = "", *staticvalue = ""; mysql_close(&mysql);
connected = 0;
ast_debug(1, "Got a field '%s' of type '%s'\n", row[0], row[1]);
/* Check for an alias or a static value */ return AST_MODULE_LOAD_DECLINE;
for (var = ast_variable_browse(cfg, "columns"); var; var = var->next) { }
if (strncmp(var->name, "alias", 5) == 0 && strcasecmp(var->value, row[0]) == 0 ) {
char *alias = ast_strdupa(var->name + 5); while ((row = mysql_fetch_row(result))) {
cdrvar = ast_strip(alias); struct column *entry;
ast_verb(3, "Found alias %s for column %s\n", cdrvar, row[0]); char *cdrvar = "", *staticvalue = "";
break;
} else if (strncmp(var->name, "static", 6) == 0 && strcasecmp(var->value, row[0]) == 0) { ast_debug(1, "Got a field '%s' of type '%s'\n", row[0], row[1]);
char *item = ast_strdupa(var->name + 6); /* Check for an alias or a static value */
item = ast_strip(item); for (var = ast_variable_browse(cfg, "columns"); var; var = var->next) {
if (item[0] == '"' && item[strlen(item) - 1] == '"') { if (strncmp(var->name, "alias", 5) == 0 && strcasecmp(var->value, row[0]) == 0 ) {
/* Remove surrounding quotes */ char *alias = ast_strdupa(var->name + 5);
item[strlen(item) - 1] = '\0'; cdrvar = ast_strip(alias);
item++; ast_verb(3, "Found alias %s for column %s\n", cdrvar, row[0]);
} break;
staticvalue = item; } else if (strncmp(var->name, "static", 6) == 0 && strcasecmp(var->value, row[0]) == 0) {
char *item = ast_strdupa(var->name + 6);
item = ast_strip(item);
if (item[0] == '"' && item[strlen(item) - 1] == '"') {
/* Remove surrounding quotes */
item[strlen(item) - 1] = '\0';
item++;
} }
staticvalue = item;
} }
}
entry = ast_calloc(sizeof(char), sizeof(*entry) + strlen(row[0]) + 1 + strlen(cdrvar) + 1 + strlen(staticvalue) + 1 + strlen(row[1]) + 1); entry = ast_calloc(sizeof(char), sizeof(*entry) + strlen(row[0]) + 1 + strlen(cdrvar) + 1 + strlen(staticvalue) + 1 + strlen(row[1]) + 1);
if (!entry) { if (!entry) {
ast_log(LOG_ERROR, "Out of memory creating entry for column '%s'\n", row[0]); ast_log(LOG_ERROR, "Out of memory creating entry for column '%s'\n", row[0]);
mysql_free_result(result); mysql_free_result(result);
return AST_MODULE_LOAD_DECLINE; return AST_MODULE_LOAD_DECLINE;
} }
entry->name = (char *)entry + sizeof(*entry); entry->name = (char *)entry + sizeof(*entry);
strcpy(entry->name, row[0]); strcpy(entry->name, row[0]);
if (!ast_strlen_zero(cdrvar)) { if (!ast_strlen_zero(cdrvar)) {
entry->cdrname = entry->name + strlen(row[0]) + 1; entry->cdrname = entry->name + strlen(row[0]) + 1;
strcpy(entry->cdrname, cdrvar); strcpy(entry->cdrname, cdrvar);
} else { /* Point to same place as the column name */ } else { /* Point to same place as the column name */
entry->cdrname = (char *)entry + sizeof(*entry); entry->cdrname = (char *)entry + sizeof(*entry);
} }
if (!ast_strlen_zero(staticvalue)) { if (!ast_strlen_zero(staticvalue)) {
entry->staticvalue = entry->cdrname + strlen(entry->cdrname) + 1; entry->staticvalue = entry->cdrname + strlen(entry->cdrname) + 1;
strcpy(entry->staticvalue, staticvalue); strcpy(entry->staticvalue, staticvalue);
ast_debug(1, "staticvalue length: %d\n", (int) strlen(staticvalue) ); ast_debug(1, "staticvalue length: %d\n", (int) strlen(staticvalue) );
entry->type = entry->staticvalue + strlen(entry->staticvalue) + 1; entry->type = entry->staticvalue + strlen(entry->staticvalue) + 1;
} else { } else {
entry->type = entry->cdrname + strlen(entry->cdrname) + 1; entry->type = entry->cdrname + strlen(entry->cdrname) + 1;
} }
strcpy(entry->type, row[1]); strcpy(entry->type, row[1]);
ast_debug(1, "Entry name '%s'\n", entry->name); ast_debug(1, "Entry name '%s'\n", entry->name);
ast_debug(1, " cdrname '%s'\n", entry->cdrname); ast_debug(1, " cdrname '%s'\n", entry->cdrname);
ast_debug(1, " static '%s'\n", entry->staticvalue); ast_debug(1, " static '%s'\n", entry->staticvalue);
ast_debug(1, " type '%s'\n", entry->type); ast_debug(1, " type '%s'\n", entry->type);
AST_LIST_INSERT_TAIL(&columns, entry, list); AST_LIST_INSERT_TAIL(&columns, entry, list);
}
mysql_free_result(result);
} }
mysql_free_result(result);
return AST_MODULE_LOAD_SUCCESS; return AST_MODULE_LOAD_SUCCESS;
} }

Loading…
Cancel
Save