[svn-commits] mjordan: branch mjordan/trunk-astdb-cluster r433716 - in /team/mjordan/trunk-...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Sat Mar 28 11:18:28 CDT 2015


Author: mjordan
Date: Sat Mar 28 11:18:22 2015
New Revision: 433716

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=433716
Log:
Resolve review findings from rmudgett

Modified:
    team/mjordan/trunk-astdb-cluster/funcs/func_db.c
    team/mjordan/trunk-astdb-cluster/include/asterisk/astdb.h
    team/mjordan/trunk-astdb-cluster/main/db.c
    team/mjordan/trunk-astdb-cluster/res/res_pjsip_publish_asterisk.c

Modified: team/mjordan/trunk-astdb-cluster/funcs/func_db.c
URL: http://svnview.digium.com/svn/asterisk/team/mjordan/trunk-astdb-cluster/funcs/func_db.c?view=diff&rev=433716&r1=433715&r2=433716
==============================================================================
--- team/mjordan/trunk-astdb-cluster/funcs/func_db.c (original)
+++ team/mjordan/trunk-astdb-cluster/funcs/func_db.c Sat Mar 28 11:18:22 2015
@@ -230,7 +230,7 @@
 		</syntax>
 		<description>
 			<para>This function will check to see if a family is shared between
-			Asteris instances. If so, the function will return <literal>1</literal>.
+			Asterisk instances. If so, the function will return <literal>1</literal>.
 			If not, it will return <literal>0</literal>.</para>
 		</description>
 		<see-also>

Modified: team/mjordan/trunk-astdb-cluster/include/asterisk/astdb.h
URL: http://svnview.digium.com/svn/asterisk/team/mjordan/trunk-astdb-cluster/include/asterisk/astdb.h?view=diff&rev=433716&r1=433715&r2=433716
==============================================================================
--- team/mjordan/trunk-astdb-cluster/include/asterisk/astdb.h (original)
+++ team/mjordan/trunk-astdb-cluster/include/asterisk/astdb.h Sat Mar 28 11:18:22 2015
@@ -34,7 +34,7 @@
 struct stasis_message_type;
 
 enum ast_db_shared_type {
-	/* Items in the shared family are common across all Asterisk instances */
+	/*! Items in the shared family are common across all Asterisk instances */
 	DB_SHARE_TYPE_GLOBAL = 0,
 	/*! Items in the shared family are made unique across all Asterisk instances */
 	DB_SHARE_TYPE_UNIQUE,

Modified: team/mjordan/trunk-astdb-cluster/main/db.c
URL: http://svnview.digium.com/svn/asterisk/team/mjordan/trunk-astdb-cluster/main/db.c?view=diff&rev=433716&r1=433715&r2=433716
==============================================================================
--- team/mjordan/trunk-astdb-cluster/main/db.c (original)
+++ team/mjordan/trunk-astdb-cluster/main/db.c Sat Mar 28 11:18:22 2015
@@ -243,7 +243,7 @@
 	struct ast_db_shared_family *shared_family;
 
 	shared_family = ao2_alloc_options(sizeof(*shared_family) + strlen(family) + 1,
-		shared_db_family_dtor, OBJ_NOLOCK);
+		shared_db_family_dtor, AO2_ALLOC_OPT_LOCK_NOLOCK);
 	if (!shared_family) {
 		return NULL;
 	}
@@ -275,16 +275,19 @@
 	const char *right_key = obj_right;
 	int cmp;
 
-	switch (flags & (OBJ_POINTER | OBJ_KEY | OBJ_PARTIAL_KEY)) {
-	default:
-	case OBJ_POINTER:
+	switch (flags & OBJ_SEARCH_MASK) {
+	case OBJ_SEARCH_OBJECT:
 		right_key = right->name;
 		/* Fall through */
-	case OBJ_KEY:
+	case OBJ_SEARCH_KEY:
 		cmp = strcmp(left->name, right_key);
 		break;
-	case OBJ_PARTIAL_KEY:
+	case OBJ_SEARCH_PARTIAL_KEY:
 		cmp = strncmp(left->name, right_key, strlen(right_key));
+		break;
+	default:
+		ast_assert(0);
+		cmp = 0;
 		break;
 	}
 	return cmp;
@@ -488,6 +491,7 @@
 	ast_db_publish_shared_message(ast_db_put_shared_type(), clone, NULL);
 
 	ao2_ref(shared_family, -1);
+	ao2_ref(clone, -1);
 
 	return 0;
 }
@@ -534,6 +538,7 @@
 	ast_db_publish_shared_message(ast_db_del_shared_type(), clone, NULL);
 
 	ao2_ref(shared_family, -1);
+	ao2_ref(clone, -1);
 
 	return 0;
 }
@@ -1530,7 +1535,7 @@
 	}
 
 	/* Don't update if we don't have this area shared on this server */
-	shared_check = ao2_find(shared_families, shared_family->name, OBJ_KEY);
+	shared_check = ao2_find(shared_families, shared_family->name, OBJ_SEARCH_KEY);
 	if (!shared_check) {
 		return;
 	}

Modified: team/mjordan/trunk-astdb-cluster/res/res_pjsip_publish_asterisk.c
URL: http://svnview.digium.com/svn/asterisk/team/mjordan/trunk-astdb-cluster/res/res_pjsip_publish_asterisk.c?view=diff&rev=433716&r1=433715&r2=433716
==============================================================================
--- team/mjordan/trunk-astdb-cluster/res/res_pjsip_publish_asterisk.c (original)
+++ team/mjordan/trunk-astdb-cluster/res/res_pjsip_publish_asterisk.c Sat Mar 28 11:18:22 2015
@@ -1258,10 +1258,31 @@
 	&asterisk_db_publisher_handler,
 };
 
+static int unload_module(void)
+{
+	int i;
+
+	for (i = 0; i < ARRAY_LEN(publish_handlers); i++) {
+		ast_sip_unregister_publish_handler(publish_handlers[i]);
+	}
+
+	for (i = 0; i < ARRAY_LEN(event_publisher_handlers); i++) {
+		ast_sip_unregister_event_publisher_handler(event_publisher_handlers[i]);
+	}
+
+	return 0;
+}
+
+static int reload_module(void)
+{
+	ast_sorcery_reload_object(ast_sip_get_sorcery(), "asterisk-publication");
+	asterisk_publication_send_refresh();
+	return 0;
+}
+
 static int load_module(void)
 {
 	int i;
-	int j;
 
 	CHECK_PJSIP_PUBSUB_MODULE_LOADED();
 
@@ -1288,9 +1309,7 @@
 		if (ast_sip_register_publish_handler(publish_handlers[i])) {
 			ast_log(LOG_WARNING, "Unable to register event publication handler %s\n",
 				publish_handlers[i]->event_name);
-			for (j = 0; j < i; j++) {
-				ast_sip_unregister_publish_handler(publish_handlers[j]);
-			}
+			unload_module();
 			return AST_MODULE_LOAD_DECLINE;
 		}
 	}
@@ -1299,12 +1318,7 @@
 		if (ast_sip_register_event_publisher_handler(event_publisher_handlers[i])) {
 			ast_log(LOG_WARNING, "Unable to register event publisher handler %s\n",
 				event_publisher_handlers[i]->event_name);
-			for (j = 0; j < ARRAY_LEN(&publish_handlers); j++) {
-				ast_sip_unregister_publish_handler(publish_handlers[j]);
-			}
-			for (j = 0; j < i; j++) {
-				ast_sip_unregister_event_publisher_handler(event_publisher_handlers[j]);
-			}
+			unload_module();
 			return AST_MODULE_LOAD_DECLINE;
 		}
 	}
@@ -1312,28 +1326,6 @@
 	asterisk_publication_send_refresh();
 
 	return AST_MODULE_LOAD_SUCCESS;
-}
-
-static int reload_module(void)
-{
-	ast_sorcery_reload_object(ast_sip_get_sorcery(), "asterisk-publication");
-	asterisk_publication_send_refresh();
-	return 0;
-}
-
-static int unload_module(void)
-{
-	int i;
-
-	for (i = 0; i < ARRAY_LEN(publish_handlers); i++) {
-		ast_sip_unregister_publish_handler(publish_handlers[i]);
-	}
-
-	for (i = 0; i < ARRAY_LEN(event_publisher_handlers); i++) {
-		ast_sip_unregister_event_publisher_handler(event_publisher_handlers[i]);
-	}
-
-	return 0;
 }
 
 AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PJSIP Asterisk Event PUBLISH Support",




More information about the svn-commits mailing list