[asterisk-commits] file: branch file/pimp_sip_location r382801 - in /team/file/pimp_sip_location...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Mar 11 11:45:53 CDT 2013


Author: file
Date: Mon Mar 11 11:45:49 2013
New Revision: 382801

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=382801
Log:
Incorporate review feedback.

Modified:
    team/file/pimp_sip_location/channels/chan_gulp.c
    team/file/pimp_sip_location/res/res_sip.c
    team/file/pimp_sip_location/res/res_sip/location.c
    team/file/pimp_sip_location/res/res_sip_endpoint_identifier_ip.c
    team/file/pimp_sip_location/res/res_sip_session.c

Modified: team/file/pimp_sip_location/channels/chan_gulp.c
URL: http://svnview.digium.com/svn/asterisk/team/file/pimp_sip_location/channels/chan_gulp.c?view=diff&rev=382801&r1=382800&r2=382801
==============================================================================
--- team/file/pimp_sip_location/channels/chan_gulp.c (original)
+++ team/file/pimp_sip_location/channels/chan_gulp.c Mon Mar 11 11:45:49 2013
@@ -167,8 +167,8 @@
 	}
 
 	while ((aor_name = strsep(&rest, ","))) {
-		struct ast_sip_aor *aor = ast_sip_location_retrieve_aor(aor_name);
-		struct ao2_container *contacts;
+		RAII_VAR(struct ast_sip_aor *, aor, ast_sip_location_retrieve_aor(aor_name), ao2_cleanup);
+		RAII_VAR(struct ao2_container *, contacts, NULL, ao2_cleanup);
 		struct ao2_iterator it_contacts;
 		struct ast_sip_contact *contact;
 
@@ -176,13 +176,10 @@
 			/* If the AOR provided is not found skip it, there may be more */
 			continue;
 		} else if (!(contacts = ast_sip_location_retrieve_aor_contacts(aor))) {
-			/* No contacts are available, skip it a well */
-			ao2_cleanup(aor);
+			/* No contacts are available, skip it as well */
 			continue;
 		} else if (!ao2_container_count(contacts)) {
 			/* We were given a container but no contacts are in it... */
-			ao2_cleanup(contacts);
-			ao2_cleanup(aor);
 			continue;
 		}
 
@@ -196,9 +193,6 @@
 			ast_str_append(&dial, -1, "%s/%s&", args.endpoint_name, contact->uri);
 		}
 		ao2_iterator_destroy(&it_contacts);
-
-		ao2_cleanup(contacts);
-		ao2_cleanup(aor);
 	}
 
 	/* Trim the '&' at the end off */

Modified: team/file/pimp_sip_location/res/res_sip.c
URL: http://svnview.digium.com/svn/asterisk/team/file/pimp_sip_location/res/res_sip.c?view=diff&rev=382801&r1=382800&r2=382801
==============================================================================
--- team/file/pimp_sip_location/res/res_sip.c (original)
+++ team/file/pimp_sip_location/res/res_sip.c Mon Mar 11 11:45:49 2013
@@ -259,11 +259,12 @@
 {
 	RAII_VAR(struct ast_uuid *, uuid, ast_uuid_generate(), ast_free_ptr);
 	char uuid_str[AST_UUID_STR_LEN];
-	pj_str_t local_uri = pj_str("sip:temp at temp"), remote_uri;
+	static pj_str_t local_uri = { "sip:temp at temp", 13 };
+	pj_str_t remote_uri;
 	pjsip_dialog *dlg = NULL;
 	const char *transport_name = endpoint->transport, *outbound_proxy = endpoint->outbound_proxy;
 	pjsip_tpselector selector = { .type = PJSIP_TPSELECTOR_NONE, };
-	const pj_str_t HCONTACT = { "Contact", 7 };
+	static const pj_str_t HCONTACT = { "Contact", 7 };
 
 	if (!uuid) {
 		return NULL;

Modified: team/file/pimp_sip_location/res/res_sip/location.c
URL: http://svnview.digium.com/svn/asterisk/team/file/pimp_sip_location/res/res_sip/location.c?view=diff&rev=382801&r1=382800&r2=382801
==============================================================================
--- team/file/pimp_sip_location/res/res_sip/location.c (original)
+++ team/file/pimp_sip_location/res/res_sip/location.c Mon Mar 11 11:45:49 2013
@@ -101,7 +101,7 @@
 	char regex[strlen(ast_sorcery_object_get_id(aor)) + 3];
 	struct ao2_container *contacts;
 
-	snprintf(regex, sizeof(regex), "^%s-", ast_sorcery_object_get_id(aor));
+	snprintf(regex, sizeof(regex), "^%s;@", ast_sorcery_object_get_id(aor));
 
 	if (!(contacts = ast_sorcery_retrieve_by_regex(ast_sip_get_sorcery(), "contact", regex))) {
 		return NULL;
@@ -128,7 +128,7 @@
 	char name[AST_UUID_STR_LEN];
 	RAII_VAR(struct ast_sip_contact *, contact, NULL, ao2_cleanup);
 
-	snprintf(name, sizeof(name), "%s-%s", ast_sorcery_object_get_id(aor), uri);
+	snprintf(name, sizeof(name), "%s;@%s", ast_sorcery_object_get_id(aor), uri);
 
 	if (!(contact = ast_sorcery_alloc(ast_sip_get_sorcery(), "contact", name))) {
 		return -1;

Modified: team/file/pimp_sip_location/res/res_sip_endpoint_identifier_ip.c
URL: http://svnview.digium.com/svn/asterisk/team/file/pimp_sip_location/res/res_sip_endpoint_identifier_ip.c?view=diff&rev=382801&r1=382800&r2=382801
==============================================================================
--- team/file/pimp_sip_location/res/res_sip_endpoint_identifier_ip.c (original)
+++ team/file/pimp_sip_location/res/res_sip_endpoint_identifier_ip.c Mon Mar 11 11:45:49 2013
@@ -106,6 +106,7 @@
 	struct ip_identify_match *identify = obj;
 	int error = 0;
 
+	/* We deny what we actually want to match because there is an implicit permit all rule for ACLs */
 	if (!(identify->matches = ast_append_ha("d", var->value, identify->matches, &error))) {
 		return -1;
 	}

Modified: team/file/pimp_sip_location/res/res_sip_session.c
URL: http://svnview.digium.com/svn/asterisk/team/file/pimp_sip_location/res/res_sip_session.c?view=diff&rev=382801&r1=382800&r2=382801
==============================================================================
--- team/file/pimp_sip_location/res/res_sip_session.c (original)
+++ team/file/pimp_sip_location/res/res_sip_session.c Mon Mar 11 11:45:49 2013
@@ -543,6 +543,8 @@
 
 	/* If the location is still empty we have nowhere to go */
 	if (ast_strlen_zero(location) || !(rest = ast_strdupa(location))) {
+		ast_log(LOG_WARNING, "No location is configured on endpoint '%s' and one was not provided\n",
+			ast_sorcery_object_get_id(endpoint));
 		return NULL;
 	}
 




More information about the asterisk-commits mailing list