summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--channels/chan_iax2.c4
-rw-r--r--main/pbx.c7
2 files changed, 9 insertions, 2 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index a8369f554..391f5a172 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -8675,6 +8675,10 @@ static void __expire_registry(const void *data)
if (!peer)
return;
+ if (peer->expire == -1) {
+ /* Removed already (possibly through CLI), ignore */
+ return;
+ }
peer->expire = -1;
diff --git a/main/pbx.c b/main/pbx.c
index a10293d77..973a44b9c 100644
--- a/main/pbx.c
+++ b/main/pbx.c
@@ -2176,8 +2176,11 @@ static struct match_char *add_exten_to_pattern_tree(struct ast_context *con, str
if (already && (m2 = already_in_tree(m1, buf, pattern)) && m2->next_char) {
if (!(*(s1 + 1))) { /* if this is the end of the pattern, but not the end of the tree, then mark this node with the exten...
a shorter pattern might win if the longer one doesn't match */
+ if (findonly) {
+ return m2;
+ }
if (m2->exten) {
- ast_log(LOG_WARNING, "Found duplicate exten. Had %s found %s\n", m2->exten->exten, e1->exten);
+ ast_log(LOG_WARNING, "Found duplicate exten. Had %s found %s\n", m2->deleted ? "(deleted/invalid)" : m2->exten->exten, e1->exten);
}
m2->exten = e1;
m2->deleted = 0;
@@ -2201,7 +2204,7 @@ static struct match_char *add_exten_to_pattern_tree(struct ast_context *con, str
}
if (!(*(s1 + 1))) {
if (m2 && m2->exten) {
- ast_log(LOG_WARNING, "Found duplicate exten. Had %s found %s\n", m2->exten->exten, e1->exten);
+ ast_log(LOG_WARNING, "Found duplicate exten. Had %s found %s\n", m2->deleted ? "(deleted/invalid)" : m2->exten->exten, e1->exten);
}
m1->deleted = 0;
m1->exten = e1;