Merge "pbx.c: Additional fixes to ast_context_remove_extension_callerid2."
This commit is contained in:
commit
2947127313
|
@ -5033,10 +5033,12 @@ int ast_context_remove_extension_callerid2(struct ast_context *con, const char *
|
||||||
/* scan the extension list to find first matching extension-registrar */
|
/* scan the extension list to find first matching extension-registrar */
|
||||||
for (exten = con->root; exten; prev_exten = exten, exten = exten->next) {
|
for (exten = con->root; exten; prev_exten = exten, exten = exten->next) {
|
||||||
if (!strcmp(exten->exten, ex.exten) &&
|
if (!strcmp(exten->exten, ex.exten) &&
|
||||||
(!registrar || !strcmp(exten->registrar, registrar)) &&
|
(!matchcallerid ||
|
||||||
(!matchcallerid || (!ast_strlen_zero(callerid) && !ast_strlen_zero(exten->cidmatch) && !strcmp(exten->cidmatch, callerid)) || (ast_strlen_zero(callerid) && ast_strlen_zero(exten->cidmatch))))
|
(!ast_strlen_zero(ex.cidmatch) && !ast_strlen_zero(exten->cidmatch) && !strcmp(exten->cidmatch, ex.cidmatch)) ||
|
||||||
|
(ast_strlen_zero(ex.cidmatch) && ast_strlen_zero(exten->cidmatch)))) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (!exten) {
|
if (!exten) {
|
||||||
/* we can't find right extension */
|
/* we can't find right extension */
|
||||||
if (!already_locked)
|
if (!already_locked)
|
||||||
|
@ -5047,7 +5049,7 @@ int ast_context_remove_extension_callerid2(struct ast_context *con, const char *
|
||||||
/* scan the priority list to remove extension with exten->priority == priority */
|
/* scan the priority list to remove extension with exten->priority == priority */
|
||||||
for (peer = exten, next_peer = exten->peer ? exten->peer : exten->next;
|
for (peer = exten, next_peer = exten->peer ? exten->peer : exten->next;
|
||||||
peer && !strcmp(peer->exten, ex.exten) &&
|
peer && !strcmp(peer->exten, ex.exten) &&
|
||||||
(!callerid || (!matchcallerid && !peer->matchcid) || (matchcallerid && peer->matchcid && !strcmp(peer->cidmatch, callerid))) ;
|
(!callerid || (!matchcallerid && !peer->matchcid) || (matchcallerid && peer->matchcid && !strcmp(peer->cidmatch, ex.cidmatch))) ;
|
||||||
peer = next_peer, next_peer = next_peer ? (next_peer->peer ? next_peer->peer : next_peer->next) : NULL) {
|
peer = next_peer, next_peer = next_peer ? (next_peer->peer ? next_peer->peer : next_peer->next) : NULL) {
|
||||||
|
|
||||||
if ((priority == 0 || peer->priority == priority) &&
|
if ((priority == 0 || peer->priority == priority) &&
|
||||||
|
|
Loading…
Reference in New Issue