Author: rmudgett Date: Mon Sep 29 16:18:54 2014 New Revision: 424109 URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=424109 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. ........ Merged revisions 424103 from http://svn.asterisk.org/svn/asterisk/branches/12 ........ Merged revisions 424105 from http://svn.asterisk.org/svn/asterisk/branches/13 Modified: trunk/ (props changed) trunk/res/res_pjsip.c trunk/res/res_pjsip_authenticator_digest.c trunk/res/res_pjsip_pubsub.c trunk/res/res_pjsip_session.c Propchange: trunk/ ------------------------------------------------------------------------------ Binary property 'branch-13-merged' - no diff available. Modified: trunk/res/res_pjsip.c URL: http://svnview.digium.com/svn/asterisk/trunk/res/res_pjsip.c?view=diff&rev=424109&r1=424108&r2=424109 ============================================================================== --- trunk/res/res_pjsip.c (original) +++ trunk/res/res_pjsip.c Mon Sep 29 16:18:54 2014 @@ -1978,11 +1978,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 */ @@ -2731,14 +2727,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: trunk/res/res_pjsip_authenticator_digest.c URL: http://svnview.digium.com/svn/asterisk/trunk/res/res_pjsip_authenticator_digest.c?view=diff&rev=424109&r1=424108&r2=424109 ============================================================================== --- trunk/res/res_pjsip_authenticator_digest.c (original) +++ trunk/res/res_pjsip_authenticator_digest.c Mon Sep 29 16:18:54 2014 @@ -443,15 +443,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: trunk/res/res_pjsip_pubsub.c URL: http://svnview.digium.com/svn/asterisk/trunk/res/res_pjsip_pubsub.c?view=diff&rev=424109&r1=424108&r2=424109 ============================================================================== --- trunk/res/res_pjsip_pubsub.c (original) +++ trunk/res/res_pjsip_pubsub.c Mon Sep 29 16:18:54 2014 @@ -2188,6 +2188,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) { @@ -2202,13 +2203,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: trunk/res/res_pjsip_session.c URL: http://svnview.digium.com/svn/asterisk/trunk/res/res_pjsip_session.c?view=diff&rev=424109&r1=424108&r2=424109 ============================================================================== --- trunk/res/res_pjsip_session.c (original) +++ trunk/res/res_pjsip_session.c Mon Sep 29 16:18:54 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); -- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- svn-commits mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/svn-commits
