one more client for find_context_locked()

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@21851 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.4
Luigi Rizzo 21 years ago
parent 73c8b06dcc
commit eb6dca850d

26
pbx.c

@ -3903,28 +3903,14 @@ int ast_context_add_include2(struct ast_context *con, const char *value,
*/
int ast_context_add_switch(const char *context, const char *sw, const char *data, int eval, const char *registrar)
{
struct ast_context *c = NULL;
if (ast_lock_contexts()) {
errno = EBUSY;
return -1;
}
int ret = -1;
struct ast_context *c = find_context_locked(context);
/* walk contexts ... */
while ( (c = ast_walk_contexts(c)) ) {
/* ... search for the right one ... */
if (!strcmp(ast_get_context_name(c), context)) {
int ret = ast_context_add_switch2(c, sw, data, eval, registrar);
/* ... unlock contexts list and return */
ast_unlock_contexts();
return ret;
}
if (c) { /* found, add switch to this context */
ret = ast_context_add_switch2(c, sw, data, eval, registrar);
ast_unlock_contexts();
}
/* we can't find the right context */
ast_unlock_contexts();
errno = ENOENT;
return -1;
return ret;
}
/*

Loading…
Cancel
Save