summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorzuul <zuul@gerrit.asterisk.org>2016-08-16 04:51:32 -0500
committerGerrit Code Review <gerrit2@gerrit.digium.api>2016-08-16 04:51:32 -0500
commit6c4c31456fde265f874bbe9dfe28d7c011065e93 (patch)
treed0a67385efd61b9e5b10f7f967197fc3946f6f56 /main
parent8cc34aa48071257c467bf87307f3f9e630a9d37f (diff)
parent9b822293bdb51e5f17116fe884d490d332b7bce4 (diff)
Merge "pbx.c: Additional fixes to ast_context_remove_extension_callerid2." into 13
Diffstat (limited to 'main')
-rw-r--r--main/pbx.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/main/pbx.c b/main/pbx.c
index 40a97a366..3b9594a19 100644
--- a/main/pbx.c
+++ b/main/pbx.c
@@ -4992,9 +4992,11 @@ int ast_context_remove_extension_callerid2(struct ast_context *con, const char *
/* scan the extension list to find first matching extension-registrar */
for (exten = con->root; exten; prev_exten = exten, exten = exten->next) {
if (!strcmp(exten->exten, ex.exten) &&
- (!registrar || !strcmp(exten->registrar, registrar)) &&
- (!matchcallerid || (!ast_strlen_zero(callerid) && !ast_strlen_zero(exten->cidmatch) && !strcmp(exten->cidmatch, callerid)) || (ast_strlen_zero(callerid) && ast_strlen_zero(exten->cidmatch))))
+ (!matchcallerid ||
+ (!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;
+ }
}
if (!exten) {
/* we can't find right extension */
@@ -5006,7 +5008,7 @@ int ast_context_remove_extension_callerid2(struct ast_context *con, const char *
/* scan the priority list to remove extension with exten->priority == priority */
for (peer = exten, next_peer = exten->peer ? exten->peer : exten->next;
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) {
if ((priority == 0 || peer->priority == priority) &&