[svn-commits] mmichelson: branch mmichelson/rls-notify r418164 - /team/mmichelson/rls-notif...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Mon Jul 7 18:48:14 CDT 2014


Author: mmichelson
Date: Mon Jul  7 18:48:12 2014
New Revision: 418164

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=418164
Log:
Get rid of a XXX comment about needing to allocate a subscription tree.


Modified:
    team/mmichelson/rls-notify/res/res_pjsip_pubsub.c

Modified: team/mmichelson/rls-notify/res/res_pjsip_pubsub.c
URL: http://svnview.digium.com/svn/asterisk/team/mmichelson/rls-notify/res/res_pjsip_pubsub.c?view=diff&rev=418164&r1=418163&r2=418164
==============================================================================
--- team/mmichelson/rls-notify/res/res_pjsip_pubsub.c (original)
+++ team/mmichelson/rls-notify/res/res_pjsip_pubsub.c Mon Jul  7 18:48:12 2014
@@ -1044,6 +1044,27 @@
 	pjsip_evsub_set_mod_data(sub_tree->evsub, pubsub_module.id, sub_tree);
 }
 
+static struct sip_subscription_tree *allocate_subscription_tree(struct ast_sip_endpoint *endpoint)
+{
+	struct sip_subscription_tree *sub_tree;
+
+	sub_tree = ao2_alloc(sizeof *sub_tree, subscription_tree_destructor);
+	if (!sub_tree) {
+		return NULL;
+	}
+
+	sub_tree->serializer = ast_sip_create_serializer();
+	if (!sub_tree->serializer) {
+		ao2_ref(sub_tree, -1);
+		return NULL;
+	}
+
+	sub_tree->endpoint = ao2_bump(endpoint);
+
+	add_subscription(sub_tree);
+	return sub_tree;
+}
+
 /*!
  * \brief Create a subscription tree based on a resource tree.
  *
@@ -1071,14 +1092,8 @@
 	pjsip_dialog *dlg;
 	struct subscription_persistence *persistence;
 
-	sub_tree = ao2_alloc(sizeof *sub_tree, subscription_tree_destructor);
+	sub_tree = allocate_subscription_tree(endpoint);
 	if (!sub_tree) {
-		return NULL;
-	}
-
-	sub_tree->serializer = ast_sip_create_serializer();
-	if (!sub_tree->serializer) {
-		ao2_ref(sub_tree, -1);
 		return NULL;
 	}
 
@@ -1107,15 +1122,12 @@
 	ast_sip_mod_data_set(dlg->pool, dlg->mod_data, pubsub_module.id, MOD_DATA_MSG,
 			pjsip_msg_clone(dlg->pool, rdata->msg_info.msg));
 
-	sub_tree->endpoint = ao2_bump(endpoint);
 	sub_tree->notification_batch_interval = tree->notification_batch_interval;
 
 	sub_tree->root = create_virtual_subscriptions(handler, resource, generator, sub_tree, tree->root);
 	if (AST_VECTOR_SIZE(&sub_tree->root->children) > 0) {
 		sub_tree->is_list = 1;
 	}
-
-	add_subscription(sub_tree);
 
 	return sub_tree;
 }
@@ -1329,9 +1341,14 @@
 	pjsip_evsub *evsub;
 	struct sip_subscription_tree *sub_tree = NULL;
 
-	/* XXX Need allocation function for the sub_tree here */
+	sub_tree = allocate_subscription_tree(endpoint);
+	if (!sub_tree) {
+		return NULL;
+	}
+
 	sub = allocate_subscription(handler, resource, sub_tree);
 	if (!sub) {
+		ao2_cleanup(sub_tree);
 		return NULL;
 	}
 




More information about the svn-commits mailing list