[svn-commits] rmudgett: branch 12 r424103 - /branches/12/res/

SVN commits to the Digium repositories svn-commits at lists.digium.com
Mon Sep 29 16:16:25 CDT 2014


Author: rmudgett
Date: Mon Sep 29 16:16:22 2014
New Revision: 424103

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=424103
Log:
Simplify UUID generation in several places.

Replace code using ast_uuid_generate() with simpler and faster code using
ast_uuid_generate_str().  The new code avoids a malloc(), free(), and
copy.

Modified:
    branches/12/res/res_pjsip.c
    branches/12/res/res_pjsip_authenticator_digest.c
    branches/12/res/res_pjsip_pubsub.c
    branches/12/res/res_pjsip_session.c

Modified: branches/12/res/res_pjsip.c
URL: http://svnview.digium.com/svn/asterisk/branches/12/res/res_pjsip.c?view=diff&rev=424103&r1=424102&r2=424103
==============================================================================
--- branches/12/res/res_pjsip.c (original)
+++ branches/12/res/res_pjsip.c Mon Sep 29 16:16:22 2014
@@ -1433,11 +1433,7 @@
 	char uuid_str[AST_UUID_STR_LEN];
 
 	if (ast_strlen_zero(user)) {
-		RAII_VAR(struct ast_uuid *, uuid, ast_uuid_generate(), ast_free_ptr);
-		if (!uuid) {
-			return -1;
-		}
-		user = ast_uuid_to_str(uuid, uuid_str, sizeof(uuid_str));
+		user = ast_uuid_generate_str(uuid_str, sizeof(uuid_str));
 	}
 
 	/* Parse the provided target URI so we can determine what transport it will end up using */
@@ -2186,14 +2182,9 @@
 struct ast_taskprocessor *ast_sip_create_serializer(void)
 {
 	struct ast_taskprocessor *serializer;
-	RAII_VAR(struct ast_uuid *, uuid, ast_uuid_generate(), ast_free_ptr);
 	char name[AST_UUID_STR_LEN];
 
-	if (!uuid) {
-		return NULL;
-	}
-
-	ast_uuid_to_str(uuid, name, sizeof(name));
+	ast_uuid_generate_str(name, sizeof(name));
 
 	serializer = ast_threadpool_serializer(name, sip_threadpool);
 	if (!serializer) {

Modified: branches/12/res/res_pjsip_authenticator_digest.c
URL: http://svnview.digium.com/svn/asterisk/branches/12/res/res_pjsip_authenticator_digest.c?view=diff&rev=424103&r1=424102&r2=424103
==============================================================================
--- branches/12/res/res_pjsip_authenticator_digest.c (original)
+++ branches/12/res/res_pjsip_authenticator_digest.c Mon Sep 29 16:16:22 2014
@@ -438,15 +438,16 @@
 
 static int build_entity_id(void)
 {
-	RAII_VAR(struct ast_uuid *, uu, ast_uuid_generate(), ast_free_ptr);
-	RAII_VAR(char *, eid, ao2_alloc(AST_UUID_STR_LEN, NULL), ao2_cleanup);
-
-	if (!uu || !eid) {
+	char *eid;
+
+	eid = ao2_alloc(AST_UUID_STR_LEN, NULL);
+	if (!eid) {
 		return -1;
 	}
 
-	ast_uuid_to_str(uu, eid, AST_UUID_STR_LEN);
+	ast_uuid_generate_str(eid, AST_UUID_STR_LEN);
 	ao2_global_obj_replace_unref(entity_id, eid);
+	ao2_ref(eid, -1);
 	return 0;
 }
 

Modified: branches/12/res/res_pjsip_pubsub.c
URL: http://svnview.digium.com/svn/asterisk/branches/12/res/res_pjsip_pubsub.c?view=diff&rev=424103&r1=424102&r2=424103
==============================================================================
--- branches/12/res/res_pjsip_pubsub.c (original)
+++ branches/12/res/res_pjsip_pubsub.c Mon Sep 29 16:16:22 2014
@@ -856,6 +856,7 @@
 struct ast_datastore *ast_sip_subscription_alloc_datastore(const struct ast_datastore_info *info, const char *uid)
 {
 	RAII_VAR(struct ast_datastore *, datastore, NULL, ao2_cleanup);
+	char uuid_buf[AST_UUID_STR_LEN];
 	const char *uid_ptr = uid;
 
 	if (!info) {
@@ -870,13 +871,7 @@
 	datastore->info = info;
 	if (ast_strlen_zero(uid)) {
 		/* They didn't provide an ID so we'll provide one ourself */
-		struct ast_uuid *uuid = ast_uuid_generate();
-		char uuid_buf[AST_UUID_STR_LEN];
-		if (!uuid) {
-			return NULL;
-		}
-		uid_ptr = ast_uuid_to_str(uuid, uuid_buf, sizeof(uuid_buf));
-		ast_free(uuid);
+		uid_ptr = ast_uuid_generate_str(uuid_buf, sizeof(uuid_buf));
 	}
 
 	datastore->uid = ast_strdup(uid_ptr);

Modified: branches/12/res/res_pjsip_session.c
URL: http://svnview.digium.com/svn/asterisk/branches/12/res/res_pjsip_session.c?view=diff&rev=424103&r1=424102&r2=424103
==============================================================================
--- branches/12/res/res_pjsip_session.c (original)
+++ branches/12/res/res_pjsip_session.c Mon Sep 29 16:16:22 2014
@@ -550,6 +550,7 @@
 struct ast_datastore *ast_sip_session_alloc_datastore(const struct ast_datastore_info *info, const char *uid)
 {
 	RAII_VAR(struct ast_datastore *, datastore, NULL, ao2_cleanup);
+	char uuid_buf[AST_UUID_STR_LEN];
 	const char *uid_ptr = uid;
 
 	if (!info) {
@@ -564,13 +565,7 @@
 	datastore->info = info;
 	if (ast_strlen_zero(uid)) {
 		/* They didn't provide an ID so we'll provide one ourself */
-		struct ast_uuid *uuid = ast_uuid_generate();
-		char uuid_buf[AST_UUID_STR_LEN];
-		if (!uuid) {
-			return NULL;
-		}
-		uid_ptr = ast_uuid_to_str(uuid, uuid_buf, sizeof(uuid_buf));
-		ast_free(uuid);
+		uid_ptr = ast_uuid_generate_str(uuid_buf, sizeof(uuid_buf));
 	}
 
 	datastore->uid = ast_strdup(uid_ptr);




More information about the svn-commits mailing list