mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
Verify includes, and give warnings if invalid (bug #429)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1667 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -376,6 +376,13 @@ int ast_context_remove_include(char *context, char *include, char *registrar);
|
||||
*/
|
||||
int ast_context_remove_include2(struct ast_context *con, char *include, char *registrar);
|
||||
|
||||
//! Verifies includes in an ast_contect structure
|
||||
/*!
|
||||
* \param con context in which to verify the includes
|
||||
* Returns 0 if no problems found, -1 if there were any missing context
|
||||
*/
|
||||
int ast_context_verify_includes(struct ast_context *con);
|
||||
|
||||
//! Add a switch
|
||||
/*!
|
||||
* \param context context to which to add the switch
|
||||
|
14
pbx.c
14
pbx.c
@@ -4644,3 +4644,17 @@ struct ast_ignorepat *ast_walk_context_ignorepats(struct ast_context *con,
|
||||
else
|
||||
return ip->next;
|
||||
}
|
||||
|
||||
int ast_context_verify_includes(struct ast_context *con)
|
||||
{
|
||||
struct ast_include *inc;
|
||||
int res = 0;
|
||||
|
||||
for (inc = ast_walk_context_includes(con, NULL); inc; inc = ast_walk_context_includes(con, inc))
|
||||
if (!ast_context_find(inc->rname)) {
|
||||
res = -1;
|
||||
ast_log(LOG_WARNING, "Context '%s' tries includes non-existant context '%s'\n",
|
||||
ast_get_context_name(con), inc->rname);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
@@ -1653,6 +1653,10 @@ static int pbx_load_module(void)
|
||||
ast_destroy(cfg);
|
||||
}
|
||||
ast_merge_contexts_and_delete(&local_contexts,registrar);
|
||||
|
||||
for (con = ast_walk_contexts(NULL); con; con = ast_walk_contexts(con))
|
||||
ast_context_verify_includes(con);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user