[Freeswitch-svn] [commit] r10554 - in freeswitch/trunk/src: . include mod/endpoints/mod_sofia

FreeSWITCH SVN anthm at freeswitch.org
Wed Nov 26 18:30:11 PST 2008


Author: anthm
Date: Wed Nov 26 21:30:11 2008
New Revision: 10554

Log:
patch for FSCORE-219

Modified:
   freeswitch/trunk/src/include/switch_stun.h
   freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c
   freeswitch/trunk/src/switch_stun.c

Modified: freeswitch/trunk/src/include/switch_stun.h
==============================================================================
--- freeswitch/trunk/src/include/switch_stun.h	(original)
+++ freeswitch/trunk/src/include/switch_stun.h	Wed Nov 26 21:30:11 2008
@@ -147,6 +147,7 @@
 */
 SWITCH_DECLARE(const char *) switch_stun_value_to_name(int32_t type, uint32_t value);
 
+SWITCH_DECLARE(char *) switch_stun_host_lookup(const char *host, switch_memory_pool_t *pool);
 
 /*!
   \brief Extract a mapped address (IP:PORT) from a packet attribute

Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c	(original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c	Wed Nov 26 21:30:11 2008
@@ -448,7 +448,9 @@
 		return status;
 	}
 
-	if (!strncasecmp(sourceip, "stun:", 5)) {
+	if (!strncasecmp(sourceip, "host:", 5)) {
+		status = (*ip = switch_stun_host_lookup(sourceip + 5, pool)) ? SWITCH_STATUS_SUCCESS : SWITCH_STATUS_FALSE;
+	} else if (!strncasecmp(sourceip, "stun:", 5)) {
 		char *p;
 
 		if (!(profile->pflags & PFLAG_STUN_ENABLED)) {

Modified: freeswitch/trunk/src/switch_stun.c
==============================================================================
--- freeswitch/trunk/src/switch_stun.c	(original)
+++ freeswitch/trunk/src/switch_stun.c	Wed Nov 26 21:30:11 2008
@@ -428,6 +428,16 @@
 	return 1;
 }
 
+SWITCH_DECLARE(char *) switch_stun_host_lookup(const char *host, switch_memory_pool_t *pool)
+{
+	switch_sockaddr_t *addr = NULL;
+	char buf[30];
+	
+	switch_sockaddr_info_get(&addr, host, SWITCH_UNSPEC, 0, 0, pool);
+	return switch_core_strdup(pool, switch_str_nil(switch_get_addr(buf, sizeof(buf), addr)));
+	
+}
+
 SWITCH_DECLARE(switch_status_t) switch_stun_lookup(char **ip,
 												   switch_port_t *port, char *stunip, switch_port_t stunport, char **err, switch_memory_pool_t *pool)
 {



More information about the Freeswitch-svn mailing list