diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-01-25 06:10:20 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-01-25 06:10:20 +0000 |
commit | 2207b9a515214bf72785eabf75bd587bd7df23e8 (patch) | |
tree | 5e740f79246c281ef1bc43bcffc87fd21f676005 /pbx/pbx_realtime.c | |
parent | c7f2030d7977ded782c6430a33e57bbbb69cd6df (diff) |
Merge config updates (bug #3406)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@4889 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx/pbx_realtime.c')
-rwxr-xr-x | pbx/pbx_realtime.c | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/pbx/pbx_realtime.c b/pbx/pbx_realtime.c index f0e3bcf62..2d5eeacc9 100755 --- a/pbx/pbx_realtime.c +++ b/pbx/pbx_realtime.c @@ -13,7 +13,6 @@ #include <asterisk/logger.h> #include <asterisk/channel.h> #include <asterisk/config.h> -#include <asterisk/config_pvt.h> #include <asterisk/options.h> #include <asterisk/pbx.h> #include <asterisk/module.h> @@ -92,7 +91,6 @@ static struct ast_variable *realtime_switch_common(const char *table, const char { struct ast_variable *var; struct ast_config *cfg; - struct ast_category *cat; char pri[20]; char *ematch; char rexten[AST_MAX_EXTENSION + 20]=""; @@ -116,27 +114,27 @@ static struct ast_variable *realtime_switch_common(const char *table, const char if (!var) { cfg = ast_load_realtime_multientry(table, "exten LIKE", "\\_%", "context", context, "priority", pri, NULL); if (cfg) { - cat = cfg->root; + char *cat = ast_category_browse(cfg, NULL); + while(cat) { switch(mode) { case MODE_MATCHMORE: - match = ast_extension_close(cat->name, exten, 1); + match = ast_extension_close(cat, exten, 1); break; case MODE_CANMATCH: - match = ast_extension_close(cat->name, exten, 0); + match = ast_extension_close(cat, exten, 0); break; case MODE_MATCH: default: - match = ast_extension_match(cat->name, exten); + match = ast_extension_match(cat, exten); } if (match) { - var = cat->root; - cat->root = NULL; + var = ast_category_detach_variables(ast_category_get(cfg, cat)); break; } - cat = cat->next; + cat = ast_category_browse(cfg, cat); } - ast_destroy(cfg); + ast_config_destroy(cfg); } } return var; @@ -145,7 +143,7 @@ static struct ast_variable *realtime_switch_common(const char *table, const char static int realtime_exists(struct ast_channel *chan, const char *context, const char *exten, int priority, const char *callerid, const char *data) { REALTIME_COMMON(MODE_MATCH); - if (var) ast_destroy_realtime(var); + if (var) ast_variables_destroy(var); if (var) res = 1; return res > 0 ? res : 0; @@ -154,7 +152,7 @@ static int realtime_exists(struct ast_channel *chan, const char *context, const static int realtime_canmatch(struct ast_channel *chan, const char *context, const char *exten, int priority, const char *callerid, const char *data) { REALTIME_COMMON(MODE_CANMATCH); - if (var) ast_destroy_realtime(var); + if (var) ast_variables_destroy(var); if (var) res = 1; return res > 0 ? res : 0; @@ -180,7 +178,7 @@ static int realtime_exec(struct ast_channel *chan, const char *context, const ch tmp = ast_strdupa(v->value); v = v->next; } - ast_destroy_realtime(var); + ast_variables_destroy(var); if (!ast_strlen_zero(app)) { a = pbx_findapp(app); if (a) { @@ -212,7 +210,7 @@ static int realtime_exec(struct ast_channel *chan, const char *context, const ch static int realtime_matchmore(struct ast_channel *chan, const char *context, const char *exten, int priority, const char *callerid, const char *data) { REALTIME_COMMON(MODE_MATCHMORE); - if (var) ast_destroy_realtime(var); + if (var) ast_variables_destroy(var); if (var) res = 1; return res > 0 ? res : 0; |