diff options
author | root <root@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-08-30 00:03:06 +0000 |
---|---|---|
committer | root <root@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-08-30 00:03:06 +0000 |
commit | cb1419a38a702d2b7160ced72928a4aec7c2ccc2 (patch) | |
tree | 4ed225f82309743c265197d8c60414b23973ccfd /pbx | |
parent | a855b2e42a7019520348677e4e665bbd0a8fcc1d (diff) |
automerge commit
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2-netsec@41301 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx')
-rw-r--r-- | pbx/pbx_config.c | 48 |
1 files changed, 22 insertions, 26 deletions
diff --git a/pbx/pbx_config.c b/pbx/pbx_config.c index fcc80cb91..2a060e1ad 100644 --- a/pbx/pbx_config.c +++ b/pbx/pbx_config.c @@ -1045,46 +1045,42 @@ static int handle_save_dialplan(int fd, int argc, char *argv[]) } if (ast_get_extension_priority(p)!=PRIORITY_HINT) { - char *tempdata = NULL, *startdata; + char *tempdata, *startdata; const char *el = ast_get_extension_label(p); - char *label = calloc(1, 128); - tempdata = strdup((char *)ast_get_extension_app_data(p)); - if (tempdata) { - startdata = tempdata; - while (*tempdata) { - if (*tempdata == '|') - *tempdata = ','; - tempdata++; - } - tempdata = startdata; + char label[128] = ""; + + tempdata = ast_strdupa(ast_get_extension_app_data(p)); + + startdata = tempdata; + while (*tempdata) { + if (*tempdata == '|') + *tempdata = ','; + tempdata++; } - if (el) { - if (snprintf(label, 127, "(%s)", el) != (strlen(el)+2)) { - incomplete = 1; // error encountered or label is > 125 chars - label = NULL; - }; - }; - if (ast_get_extension_matchcid(p)) + tempdata = startdata; + + if (el && (snprintf(label, sizeof(label), "(%s)", el) != (strlen(el) + 2))) + incomplete = 1; // error encountered or label is > 125 chars + + if (ast_get_extension_matchcid(p)) { fprintf(output, "exten => %s/%s,%d%s,%s(%s)\n", ast_get_extension_name(p), ast_get_extension_cidmatch(p), - ast_get_extension_priority(p), (label)?label:"", + ast_get_extension_priority(p), label, ast_get_extension_app(p), tempdata); - else + } else { fprintf(output, "exten => %s,%d%s,%s(%s)\n", ast_get_extension_name(p), - ast_get_extension_priority(p), (label)?label:"", + ast_get_extension_priority(p), label, ast_get_extension_app(p), tempdata); - if (tempdata) - free(tempdata); - if (label) - free(label); - } else + } + } else { fprintf(output, "exten => %s,hint,%s\n", ast_get_extension_name(p), ast_get_extension_app(p)); + } } p = ast_walk_extension_priorities(e, p); |