aboutsummaryrefslogtreecommitdiffstats
path: root/pbx
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-11-23 22:40:37 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-11-23 22:40:37 +0000
commit365247320af0c7db8dbf8f27ca20b728b550a6a7 (patch)
treedb04ce1d82ff0ed9545f92438a04c93f514455ef /pbx
parent54b6732e7a947ca6ea41a4ac2b6c6f8b9844af7b (diff)
Be less picky about spaces, and recognize invalid priorities
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1783 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx')
-rwxr-xr-xpbx/pbx_config.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/pbx/pbx_config.c b/pbx/pbx_config.c
index 89ad44afe..c7826d0c6 100755
--- a/pbx/pbx_config.c
+++ b/pbx/pbx_config.c
@@ -1116,10 +1116,13 @@ static int handle_context_add_extension(int fd, int argc, char *argv[])
}
prior = strsep(&whole_exten,",");
if (prior) {
- if (!strcmp(prior, "hint")) {
+ if (!strcmp(prior, "hint")) {
iprior = PRIORITY_HINT;
} else {
- iprior = atoi(prior);
+ if (scanf(prior, "%i", &iprior) != 1) {
+ ast_cli(fd, "'%s' is not a valid priority\n", prior);
+ prior = NULL;
+ }
}
}
app = strsep(&whole_exten,",");
@@ -1579,8 +1582,12 @@ static int pbx_load_module(void)
pri="";
if (!strcmp(pri,"hint"))
ipri=PRIORITY_HINT;
- else
- ipri=atoi(pri);
+ else {
+ if (sscanf(pri, "%i", &ipri) != 1) {
+ ast_log(LOG_WARNING, "Invalid priority '%s' at line %d\n", pri, v->lineno);
+ ipri = 0;
+ }
+ }
appl = stringp;
if (!appl)
appl="";
@@ -1617,8 +1624,10 @@ static int pbx_load_module(void)
if (!data)
data="";
pbx_substitute_variables_helper(NULL, ext, realext, sizeof(realext) - 1);
- if (ast_add_extension2(con, 0, realext, ipri, cidmatch, appl, strdup(data), FREE, registrar)) {
- ast_log(LOG_WARNING, "Unable to register extension at line %d\n", v->lineno);
+ if (ipri) {
+ if (ast_add_extension2(con, 0, realext, ipri, cidmatch, appl, strdup(data), FREE, registrar)) {
+ ast_log(LOG_WARNING, "Unable to register extension at line %d\n", v->lineno);
+ }
}
free(tc);
} else fprintf(stderr,"Error strdup returned NULL in %s\n",__PRETTY_FUNCTION__);