From 786c6d42efb702f790a59aa5789cd0c43d62d5c6 Mon Sep 17 00:00:00 2001 From: Richard Mudgett Date: Tue, 30 Jun 2015 11:11:19 -0500 Subject: [PATCH 1/2] res_pjsip_mwi.c: Fix mid-line log message line breaks. * Add create_mwi_subscriptions_for_endpoint() doxygen comment. Change-Id: I3c3f921f4ec749fb65b62d2f6fa0d4d1888b94e2 --- res/res_pjsip_mwi.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/res/res_pjsip_mwi.c b/res/res_pjsip_mwi.c index 36490d9280..701f6fbcf1 100644 --- a/res/res_pjsip_mwi.c +++ b/res/res_pjsip_mwi.c @@ -642,8 +642,8 @@ static struct mwi_subscription *mwi_subscribe_single( * between accepting the subscription and sending the first * NOTIFY... */ - ast_log(LOG_WARNING, "Unable to locate aor %s. MWI " - "subscription failed.\n", name); + ast_log(LOG_WARNING, "Unable to locate aor %s. MWI subscription failed.\n", + name); return NULL; } @@ -661,7 +661,6 @@ static struct mwi_subscription *mwi_subscribe_all( struct mwi_subscription *sub; sub = mwi_create_subscription(endpoint, sip_sub); - if (!sub) { return NULL; } @@ -683,16 +682,15 @@ static int mwi_new_subscribe(struct ast_sip_endpoint *endpoint, } aor = ast_sip_location_retrieve_aor(resource); - if (!aor) { - ast_log(LOG_WARNING, "Unable to locate aor %s. MWI " - "subscription failed.\n", resource); + ast_log(LOG_WARNING, "Unable to locate aor %s. MWI subscription failed.\n", + resource); return 404; } if (ast_strlen_zero(aor->mailboxes)) { - ast_log(LOG_NOTICE, "AOR %s has no configured mailboxes. " - "MWI subscription failed\n", resource); + ast_log(LOG_NOTICE, "AOR %s has no configured mailboxes. MWI subscription failed.\n", + resource); return 404; } @@ -842,6 +840,7 @@ static void mwi_stasis_cb(void *userdata, struct stasis_subscription *sub, } } +/*! \note Called with the unsolicited_mwi conainer lock held. */ static int create_mwi_subscriptions_for_endpoint(void *obj, void *arg, int flags) { RAII_VAR(struct mwi_subscription *, aggregate_sub, NULL, ao2_cleanup); @@ -982,7 +981,6 @@ static void mwi_contact_added(const void *object) ao2_lock(unsolicited_mwi); mwi_subs = ao2_find(unsolicited_mwi, endpoint_id, OBJ_SEARCH_KEY | OBJ_MULTIPLE | OBJ_NOLOCK | OBJ_UNLINK); - if (mwi_subs) { for (; (mwi_sub = ao2_iterator_next(mwi_subs)); ao2_cleanup(mwi_sub)) { unsubscribe(mwi_sub, NULL, 0); From 453d7b8d699443e494ae1442a9c8810f20435346 Mon Sep 17 00:00:00 2001 From: Richard Mudgett Date: Tue, 30 Jun 2015 11:14:57 -0500 Subject: [PATCH 2/2] res_pjsip_mwi.c: Eliminate a simple RAII_VAR. Change-Id: Ib1843f81e826a6c760c424c88eb70c350d9d61da --- res/res_pjsip_mwi.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/res/res_pjsip_mwi.c b/res/res_pjsip_mwi.c index 701f6fbcf1..4e73010704 100644 --- a/res/res_pjsip_mwi.c +++ b/res/res_pjsip_mwi.c @@ -633,10 +633,10 @@ static struct mwi_subscription *mwi_create_subscription( static struct mwi_subscription *mwi_subscribe_single( struct ast_sip_endpoint *endpoint, struct ast_sip_subscription *sip_sub, const char *name) { - RAII_VAR(struct ast_sip_aor *, aor, - ast_sip_location_retrieve_aor(name), ao2_cleanup); + struct ast_sip_aor *aor; struct mwi_subscription *sub; + aor = ast_sip_location_retrieve_aor(name); if (!aor) { /*! I suppose it's possible for the AOR to disappear on us * between accepting the subscription and sending the first @@ -647,11 +647,12 @@ static struct mwi_subscription *mwi_subscribe_single( return NULL; } - if (!(sub = mwi_create_subscription(endpoint, sip_sub))) { - return NULL; + sub = mwi_create_subscription(endpoint, sip_sub); + if (sub) { + mwi_on_aor(aor, sub, 0); } - mwi_on_aor(aor, sub, 0); + ao2_ref(aor, -1); return sub; }