summaryrefslogtreecommitdiff
path: root/res/res_pjsip_mwi.c
diff options
context:
space:
mode:
Diffstat (limited to 'res/res_pjsip_mwi.c')
-rw-r--r--res/res_pjsip_mwi.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/res/res_pjsip_mwi.c b/res/res_pjsip_mwi.c
index e1eea6f2a..c9d1b743e 100644
--- a/res/res_pjsip_mwi.c
+++ b/res/res_pjsip_mwi.c
@@ -432,7 +432,7 @@ static void send_unsolicited_mwi_notify(struct mwi_subscription *sub,
ast_debug(5, "Sending unsolicited MWI NOTIFY to endpoint %s, new messages: %d, old messages: %d\n",
sub->id, counter->new_msgs, counter->old_msgs);
- while ((aor_name = strsep(&endpoint_aors, ","))) {
+ while ((aor_name = ast_strip(strsep(&endpoint_aors, ",")))) {
RAII_VAR(struct ast_sip_aor *, aor, ast_sip_location_retrieve_aor(aor_name), ao2_cleanup);
RAII_VAR(struct ao2_container *, contacts, NULL, ao2_cleanup);
struct unsolicited_mwi_data mwi_data = {
@@ -598,7 +598,11 @@ static int mwi_validate_for_aor(void *obj, void *arg, int flags)
}
mailboxes = ast_strdupa(aor->mailboxes);
- while ((mailbox = strsep(&mailboxes, ","))) {
+ while ((mailbox = ast_strip(strsep(&mailboxes, ",")))) {
+ if (ast_strlen_zero(mailbox)) {
+ continue;
+ }
+
if (endpoint_receives_unsolicited_mwi_for_mailbox(endpoint, mailbox)) {
ast_debug(1, "Endpoint '%s' already configured for unsolicited MWI for mailbox '%s'. "
"Denying MWI subscription to %s\n", ast_sorcery_object_get_id(endpoint), mailbox,
@@ -622,9 +626,13 @@ static int mwi_on_aor(void *obj, void *arg, int flags)
}
mailboxes = ast_strdupa(aor->mailboxes);
- while ((mailbox = strsep(&mailboxes, ","))) {
+ while ((mailbox = ast_strip(strsep(&mailboxes, ",")))) {
struct mwi_stasis_subscription *mwi_stasis_sub;
+ if (ast_strlen_zero(mailbox)) {
+ continue;
+ }
+
mwi_stasis_sub = mwi_stasis_subscription_alloc(mailbox, sub);
if (!mwi_stasis_sub) {
continue;
@@ -890,7 +898,7 @@ static int create_mwi_subscriptions_for_endpoint(void *obj, void *arg, int flags
endpoint_aors = ast_strdupa(endpoint->aors);
- while ((aor_name = strsep(&endpoint_aors, ","))) {
+ while ((aor_name = ast_strip(strsep(&endpoint_aors, ",")))) {
RAII_VAR(struct ast_sip_aor *, aor, ast_sip_location_retrieve_aor(aor_name), ao2_cleanup);
if (!aor) {
@@ -921,11 +929,15 @@ static int create_mwi_subscriptions_for_endpoint(void *obj, void *arg, int flags
}
mailboxes = ast_strdupa(endpoint->subscription.mwi.mailboxes);
- while ((mailbox = strsep(&mailboxes, ","))) {
- struct mwi_subscription *sub = aggregate_sub ?:
- mwi_subscription_alloc(endpoint, 0, NULL);
+ while ((mailbox = ast_strip(strsep(&mailboxes, ",")))) {
+ struct mwi_subscription *sub;
struct mwi_stasis_subscription *mwi_stasis_sub;
+ if (ast_strlen_zero(mailbox)) {
+ continue;
+ }
+
+ sub = aggregate_sub ?: mwi_subscription_alloc(endpoint, 0, NULL);
mwi_stasis_sub = mwi_stasis_subscription_alloc(mailbox, sub);
if (mwi_stasis_sub) {
ao2_link(sub->stasis_subs, mwi_stasis_sub);