Add support for #include, var_metric, and cat_metric in res_config_sqlite

(closes issue #10738, rbraun_proformatique)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82679 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.6.0
Russell Bryant 18 years ago
parent 96d9f820e9
commit 3dc9e8f38a

@ -15,6 +15,8 @@
*/
CREATE TABLE ast_config (
id INTEGER,
cat_metric INT(11) NOT NULL DEFAULT 0,
var_metric INT(11) NOT NULL DEFAULT 0,
commented TINYINT(1) NOT NULL DEFAULT 0,
filename VARCHAR(128) NOT NULL DEFAULT '',
category VARCHAR(128) NOT NULL DEFAULT 'default',
@ -23,8 +25,9 @@ CREATE TABLE ast_config (
PRIMARY KEY (id)
);
CREATE INDEX ast_config__idx__cat_metric ON ast_config(cat_metric);
CREATE INDEX ast_config__idx__var_metric ON ast_config(var_metric);
CREATE INDEX ast_config__idx__filename_commented ON ast_config(filename, commented);
CREATE INDEX ast_config__idx__category ON ast_config(category);
/*
* CDR table (this table is automatically created if non existent).

@ -113,6 +113,8 @@
enum {
RES_CONFIG_SQLITE_CONFIG_ID,
RES_CONFIG_SQLITE_CONFIG_CAT_METRIC,
RES_CONFIG_SQLITE_CONFIG_VAR_METRIC,
RES_CONFIG_SQLITE_CONFIG_COMMENTED,
RES_CONFIG_SQLITE_CONFIG_FILENAME,
RES_CONFIG_SQLITE_CONFIG_CATEGORY,
@ -184,6 +186,7 @@ struct cfg_entry_args {
struct ast_config *cfg;
struct ast_category *cat;
char *cat_name;
struct ast_flags flags;
};
/*!
@ -589,7 +592,7 @@ static char *sql_get_config_table =
"SELECT *"
" FROM '%q'"
" WHERE filename = '%q' AND commented = 0"
" ORDER BY category;";
" ORDER BY cat_metric ASC, var_metric ASC;";
static int set_var(char **var, char *name, char *value)
{
@ -715,6 +718,22 @@ static int add_cfg_entry(void *arg, int argc, char **argv, char **columnNames)
args = arg;
if (!strcmp(argv[RES_CONFIG_SQLITE_CONFIG_VAR_NAME], "#include")) {
struct ast_config *cfg;
char *val;
val = argv[RES_CONFIG_SQLITE_CONFIG_VAR_VAL];
cfg = ast_config_internal_load(val, args->cfg, args->flags, "");
if (!cfg) {
ast_log(LOG_WARNING, "Unable to include %s\n", val);
return 1;
} else {
args->cfg = cfg;
return 0;
}
}
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);
@ -772,6 +791,7 @@ static struct ast_config *config_handler(const char *database, const char *table
args.cfg = cfg;
args.cat = NULL;
args.cat_name = NULL;
args.flags = flags;
ast_mutex_lock(&mutex);

Loading…
Cancel
Save