diff --git a/addons/res_config_mysql.c b/addons/res_config_mysql.c index f2ef949fc0cc07f89be0f637cb8f62844da1d36d..b080d118b8612a8030c28587b5019a1939d45f04 100644 --- a/addons/res_config_mysql.c +++ b/addons/res_config_mysql.c @@ -523,9 +523,8 @@ static struct ast_config *realtime_multi_mysql(const char *database, const char while ((row = mysql_fetch_row(result))) { var = NULL; - cat = ast_category_new("", "", -1); + cat = ast_category_new_anonymous(); if (!cat) { - ast_log(LOG_WARNING, "Out of memory!\n"); continue; } for (i = 0; i < numFields; i++) { @@ -934,8 +933,8 @@ static struct ast_config *config_mysql(const char *database, const char *table, } if (strcmp(last, row[0]) || last_cat_metric != atoi(row[3])) { - if (!(cur_cat = ast_category_new(row[0], "", -1))) { - ast_log(LOG_WARNING, "Out of memory!\n"); + cur_cat = ast_category_new_dynamic(row[0]); + if (!cur_cat) { break; } strcpy(last, row[0]); diff --git a/include/asterisk/config.h b/include/asterisk/config.h index 4944a3af2022bff802fec9fe7b432cdf3275b84e..f57966b0babe7e9c26b212810b94e82f1f9779f7 100644 --- a/include/asterisk/config.h +++ b/include/asterisk/config.h @@ -833,6 +833,18 @@ const char *ast_config_option(struct ast_config *cfg, const char *cat, const cha */ struct ast_category *ast_category_new(const char *name, const char *in_file, int lineno); +/*! + * \brief Create a category that is not backed by a file + * + * \param name name of new category + */ +#define ast_category_new_dynamic(name) ast_category_new(name, "", -1) + +/*! + * \brief Create a nameless category that is not backed by a file + */ +#define ast_category_new_anonymous() ast_category_new_dynamic("") + /*! * \brief Create a category making it a template * diff --git a/res/res_config_curl.c b/res/res_config_curl.c index 9ad7a6e3db7bddec8218cbd097f3adbabcfb2f64..06a6aef89e94fae852464188f71f70c2c12c5f77 100644 --- a/res/res_config_curl.c +++ b/res/res_config_curl.c @@ -182,7 +182,8 @@ static struct ast_config *realtime_multi_curl(const char *url, const char *unuse continue; } - if (!(cat = ast_category_new("", "", 99999))) { + cat = ast_category_new_anonymous(); + if (!cat) { continue; } @@ -569,8 +570,10 @@ static struct ast_config *config_curl(const char *url, const char *unused, const } if (!cat || strcmp(category, cur_cat) || last_cat_metric != cat_metric) { - if (!(cat = ast_category_new(category, "", 99999))) + cat = ast_category_new_dynamic(category); + if (!cat) { break; + } cur_cat = category; last_cat_metric = cat_metric; ast_category_append(cfg, cat); diff --git a/res/res_config_ldap.c b/res/res_config_ldap.c index 5e95853d462def6eef468ed05c77b857e16dc960..7bbac0ce0f31d3e969528b5c4f0286773032b587 100644 --- a/res/res_config_ldap.c +++ b/res/res_config_ldap.c @@ -1043,10 +1043,8 @@ static struct ast_config *realtime_multi_ldap(const char *basedn, struct ast_variable **p = vars; while (*p) { - struct ast_category *cat = NULL; - cat = ast_category_new("", table_name, -1); + struct ast_category *cat = ast_category_new_anonymous(); if (!cat) { - ast_log(LOG_ERROR, "Unable to create a new category!\n"); break; } else { struct ast_variable *var = *p; @@ -1195,7 +1193,7 @@ static struct ast_config *config_ldap(const char *basedn, const char *table_name if (!last_category || strcmp(last_category, categories[i].name) || last_category_metric != categories[i].metric) { - cur_cat = ast_category_new(categories[i].name, table_name, -1); + cur_cat = ast_category_new_dynamic(categories[i].name); if (!cur_cat) { break; } diff --git a/res/res_config_odbc.c b/res/res_config_odbc.c index 5a25b6b5a0bf34c036fa0fe9d205c8cb584b493f..114708325eef16f12e0a8a2a0020596a94542768 100644 --- a/res/res_config_odbc.c +++ b/res/res_config_odbc.c @@ -407,9 +407,8 @@ static struct ast_config *realtime_multi_odbc(const char *database, const char * ast_log(LOG_WARNING, "SQL Fetch error! [%s]\n", ast_str_buffer(sql)); continue; } - cat = ast_category_new("","",99999); + cat = ast_category_new_anonymous(); if (!cat) { - ast_log(LOG_WARNING, "Out of memory!\n"); continue; } for (x=0;x<colcount;x++) { @@ -1016,9 +1015,8 @@ static struct ast_config *config_odbc(const char *database, const char *table, c continue; } if (strcmp(last, q.category) || last_cat_metric != q.cat_metric) { - cur_cat = ast_category_new(q.category, "", 99999); + cur_cat = ast_category_new_dynamic(q.category); if (!cur_cat) { - ast_log(LOG_WARNING, "Out of memory!\n"); break; } strcpy(last, q.category); diff --git a/res/res_config_pgsql.c b/res/res_config_pgsql.c index f0859617dea216c1b578c1f5d75f887fea36198a..b5f24b0f4da3ccbec16be764356a88359b0fa465 100644 --- a/res/res_config_pgsql.c +++ b/res/res_config_pgsql.c @@ -648,8 +648,10 @@ static struct ast_config *realtime_multi_pgsql(const char *database, const char for (rowIndex = 0; rowIndex < num_rows; rowIndex++) { var = NULL; - if (!(cat = ast_category_new("","",99999))) + cat = ast_category_new_anonymous(); + if (!cat) { continue; + } for (i = 0; i < numFields; i++) { stringp = PQgetvalue(result, rowIndex, i); while (stringp) { @@ -1129,9 +1131,10 @@ static struct ast_config *config_pgsql(const char *database, const char *table, } if (strcmp(last, field_category) || last_cat_metric != atoi(field_cat_metric)) { - cur_cat = ast_category_new(field_category, "", 99999); - if (!cur_cat) + cur_cat = ast_category_new_dynamic(field_category); + if (!cur_cat) { break; + } ast_copy_string(last, field_category, sizeof(last)); last_cat_metric = atoi(field_cat_metric); ast_category_append(cfg, cur_cat); diff --git a/res/res_config_sqlite.c b/res/res_config_sqlite.c index 68594978736be45c13c9af46e1c706d8061ea5b7..96a10b43f952cc554e9c7ecdb9cfa60c41b07384 100644 --- a/res/res_config_sqlite.c +++ b/res/res_config_sqlite.c @@ -874,10 +874,8 @@ static int add_cfg_entry(void *arg, int argc, char **argv, char **columnNames) } if (!args->cat_name || strcmp(args->cat_name, argv[RES_CONFIG_SQLITE_CONFIG_CATEGORY])) { - args->cat = ast_category_new(argv[RES_CONFIG_SQLITE_CONFIG_CATEGORY], "", 99999); - + args->cat = ast_category_new_dynamic(argv[RES_CONFIG_SQLITE_CONFIG_CATEGORY]); if (!args->cat) { - ast_log(LOG_WARNING, "Unable to allocate category\n"); return 1; } @@ -1086,8 +1084,8 @@ static int add_rt_multi_cfg_entry(void *arg, int argc, char **argv, char **colum return 1; } - if (!(cat = ast_category_new(cat_name, "", 99999))) { - ast_log(LOG_WARNING, "Unable to allocate category\n"); + cat = ast_category_new_dynamic(cat_name); + if (!cat) { return 1; } diff --git a/res/res_config_sqlite3.c b/res/res_config_sqlite3.c index 8c514b07ca157b777b7d431ed7a6d47bbe527738..087843a68057efe297584416859b1e7827ab6fed 100644 --- a/res/res_config_sqlite3.c +++ b/res/res_config_sqlite3.c @@ -503,7 +503,8 @@ static int append_row_to_cfg(void *arg, int num_columns, char **values, char **c struct ast_category *cat; int i; - if (!(cat = ast_category_new("", "", 99999))) { + cat = ast_category_new_anonymous(); + if (!cat) { return SQLITE_ABORT; } @@ -723,8 +724,8 @@ static int static_realtime_cb(void *arg, int num_columns, char **values, char ** } if (!args->cat_name || strcmp(args->cat_name, values[COL_CATEGORY])) { - if (!(args->cat = ast_category_new(values[COL_CATEGORY], "", 99999))) { - ast_log(LOG_WARNING, "Unable to allocate category\n"); + args->cat = ast_category_new_dynamic(values[COL_CATEGORY]); + if (!args->cat) { return SQLITE_ABORT; }