Revision
17285
Author
moy
Date
2010-04-13 14:18:18 -0500 (Tue, 13 Apr 2010)

Log Message

add realloc OS hooks and fix boost pri CLI

Modified Paths

Diff

Modified: freeswitch/trunk/libs/freetdm/cyginstall.sh (17284 => 17285)


--- freeswitch/trunk/libs/freetdm/cyginstall.sh	2010-04-13 18:36:00 UTC (rev 17284)
+++ freeswitch/trunk/libs/freetdm/cyginstall.sh	2010-04-13 19:18:18 UTC (rev 17285)
@@ -3,8 +3,9 @@
 # FreeSWITCH is trunk is located at ../../
 fsdir=../..
 set -x
+cp Debug/mod/*.dll $fsdir/Debug/mod/
+cp mod_freetdm/Debug/*.pdb $fsdir/Debug/mod/
 cp Debug/*.dll $fsdir/Debug/
-cp Debug/mod/*.dll $fsdir/Debug/mod/
 cp Debug/*.pdb $fsdir/Debug/
 echo "FRIENDLY REMINDER: RECOMPILE ftmod_wanpipe WHENEVER YOU INSTALL NEW DRIVERS"
 set +x 

Modified: freeswitch/trunk/libs/freetdm/freetdm.2008.sln (17284 => 17285)


--- freeswitch/trunk/libs/freetdm/freetdm.2008.sln	2010-04-13 18:36:00 UTC (rev 17284)
+++ freeswitch/trunk/libs/freetdm/freetdm.2008.sln	2010-04-13 19:18:18 UTC (rev 17285)
@@ -54,6 +54,9 @@
 	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsangomaboost", "msvc\testboost\testsangomaboost.2008.vcproj", "{0DA69C18-4FA1-4E8C-89CE-12498637C5BE}"
+	ProjectSection(ProjectDependencies) = postProject
+		{93B8812C-3EC4-4F78-8970-FFBFC99E167D} = {93B8812C-3EC4-4F78-8970-FFBFC99E167D}
+	EndProjectSection
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution

Modified: freeswitch/trunk/libs/freetdm/mod_freetdm/mod_freetdm.2008.vcproj (17284 => 17285)


--- freeswitch/trunk/libs/freetdm/mod_freetdm/mod_freetdm.2008.vcproj	2010-04-13 18:36:00 UTC (rev 17284)
+++ freeswitch/trunk/libs/freetdm/mod_freetdm/mod_freetdm.2008.vcproj	2010-04-13 19:18:18 UTC (rev 17285)
@@ -72,7 +72,7 @@
 				LinkIncremental="2"
 				AdditionalLibraryDirectories=""../../../w32/Library/$(OutDir)""
 				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"
+				ProgramDatabaseFile="$(OutDir)/$(TargetName).pdb"
 				SubSystem="2"
 				RandomizedBaseAddress="1"
 				DataExecutionPrevention="0"
@@ -151,7 +151,7 @@
 				LinkIncremental="1"
 				AdditionalLibraryDirectories=""../../../w32/Library/$(OutDir)""
 				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"
+				ProgramDatabaseFile="$(OutDir)/$(TargetName).pdb"
 				SubSystem="2"
 				OptimizeReferences="2"
 				EnableCOMDATFolding="2"
@@ -237,7 +237,7 @@
 				LinkIncremental="2"
 				AdditionalLibraryDirectories=""../../../w32/Library/$(OutDir)""
 				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"
+				ProgramDatabaseFile="$(OutDir)/$(TargetName).pdb"
 				SubSystem="2"
 				RandomizedBaseAddress="1"
 				DataExecutionPrevention="0"
@@ -317,7 +317,7 @@
 				LinkIncremental="1"
 				AdditionalLibraryDirectories=""../../../w32/Library/$(OutDir)""
 				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"
+				ProgramDatabaseFile="$(OutDir)/$(TargetName).pdb"
 				SubSystem="2"
 				OptimizeReferences="2"
 				EnableCOMDATFolding="2"

Modified: freeswitch/trunk/libs/freetdm/mod_freetdm/mod_freetdm.c (17284 => 17285)


--- freeswitch/trunk/libs/freetdm/mod_freetdm/mod_freetdm.c	2010-04-13 18:36:00 UTC (rev 17284)
+++ freeswitch/trunk/libs/freetdm/mod_freetdm/mod_freetdm.c	2010-04-13 19:18:18 UTC (rev 17285)
@@ -3108,11 +3108,12 @@
 		}
 		stream->write_function(stream, "+OK gains set to Rx %f and Tx %f\n", rxgain, txgain);
 	} else {
+
 		char *rply = ftdm_api_execute(cmd, NULL);
 		
 		if (rply) {
 			stream->write_function(stream, "%s", rply);
-			free(rply);
+			ftdm_safe_free(rply);
 		} else {
 			stream->write_function(stream, "-ERR Usage: %s\n", FT_SYNTAX);
 		}

Modified: freeswitch/trunk/libs/freetdm/src/ftdm_io.c (17284 => 17285)


--- freeswitch/trunk/libs/freetdm/src/ftdm_io.c	2010-04-13 18:36:00 UTC (rev 17284)
+++ freeswitch/trunk/libs/freetdm/src/ftdm_io.c	2010-04-13 19:18:18 UTC (rev 17285)
@@ -223,6 +223,14 @@
 	return ptr;
 }
 
+static __inline__ void *ftdm_std_realloc(void *pool, void *buff, ftdm_size_t size)
+{
+	buff = realloc(buff, size);
+	pool = NULL;
+	ftdm_assert_return(buff != NULL, NULL, "Out of memory");
+	return buff;
+}
+
 static __inline__ void ftdm_std_free(void *pool, void *ptr)
 {
 	pool = NULL;
@@ -235,6 +243,7 @@
 	/*.pool =*/ NULL,
 	/*.malloc =*/ ftdm_std_malloc,
 	/*.calloc =*/ ftdm_std_calloc,
+	/*.realloc =*/ ftdm_std_realloc,
 	/*.free =*/ ftdm_std_free
 };
 
@@ -3360,6 +3369,11 @@
 	ftdm_module_t *mod = (ftdm_module_t *) hashtable_search(globals.module_hash, (void *)type);
 	ftdm_status_t status = FTDM_FAIL;
 
+	if (!span->chan_count) {
+		ftdm_log(FTDM_LOG_WARNING, "Cannot configure signaling on span with no channels\n");
+		return FTDM_FAIL;
+	}
+
 	if (!mod) {
 		ftdm_load_module_assume(type);
 		if ((mod = (ftdm_module_t *) hashtable_search(globals.module_hash, (void *)type))) {
@@ -3371,10 +3385,10 @@
 		va_list ap;
 		va_start(ap, sig_cb);
 		status = mod->sig_configure(span, sig_cb, ap);
+		va_end(ap);
 		if (status == FTDM_SUCCESS && ftdm_test_flag(span, FTDM_SPAN_USE_CHAN_QUEUE)) {
 			status = ftdm_queue_create(&span->pendingchans, SPAN_PENDING_CHANS_QUEUE_SIZE);
 		}
-		va_end(ap);
 	} else {
 		ftdm_log(FTDM_LOG_ERROR, "can't find '%s'\n", type);
 		status = FTDM_FAIL;
@@ -3393,6 +3407,11 @@
 	ftdm_assert_return(sig_cb != NULL, FTDM_FAIL, "No signaling callback");
 	ftdm_assert_return(parameters != NULL, FTDM_FAIL, "No parameters");
 
+	if (!span->chan_count) {
+		ftdm_log(FTDM_LOG_WARNING, "Cannot configure signaling on span with no channels\n");
+		return FTDM_FAIL;
+	}
+
 	if (!mod) {
 		ftdm_load_module_assume(type);
 		if ((mod = (ftdm_module_t *) hashtable_search(globals.module_hash, (void *)type))) {
@@ -4071,7 +4090,7 @@
 			void *new_data;
 
 			new_len = handle->data_size + need + handle->alloc_chunk;
-			if ((new_data = realloc(handle->data, new_len))) {
+			if ((new_data = ftdm_realloc(handle->data, new_len))) {
 				handle->data_size = handle->alloc_len = new_len;
 				handle->data = new_data;
 				buf = handle->data;

Modified: freeswitch/trunk/libs/freetdm/src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c (17284 => 17285)


--- freeswitch/trunk/libs/freetdm/src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c	2010-04-13 18:36:00 UTC (rev 17284)
+++ freeswitch/trunk/libs/freetdm/src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c	2010-04-13 19:18:18 UTC (rev 17285)
@@ -1798,7 +1798,7 @@
 			if (sigmod_iface) {
 				char *p = strchr(data, ' ');
 				if (++p) {
-					char* mydup = strdup(p);
+					char* mydup = ftdm_strdup(p);
 					if(sigmod_iface->exec_api == NULL) {
 						stream->write_function(stream, "%s does not support api functions\n", sigmod_iface->name);
 						goto done;
@@ -1807,7 +1807,7 @@
 					if (sigmod_iface->exec_api(stream, mydup) != FTDM_SUCCESS) {
 						stream->write_function(stream, "-ERR:failed to execute command:%s\n", mydup);
 					}
-					free(mydup);
+					ftdm_safe_free(mydup);
 				}
 				
 				goto done;

Modified: freeswitch/trunk/libs/freetdm/src/include/freetdm.h (17284 => 17285)


--- freeswitch/trunk/libs/freetdm/src/include/freetdm.h	2010-04-13 18:36:00 UTC (rev 17284)
+++ freeswitch/trunk/libs/freetdm/src/include/freetdm.h	2010-04-13 19:18:18 UTC (rev 17285)
@@ -364,7 +364,7 @@
 FT_DECLARE_NONSTD(ftdm_status_t) ftdm_console_stream_write(ftdm_stream_handle_t *handle, const char *fmt, ...);
 
 #define FTDM_CMD_CHUNK_LEN 1024
-#define FTDM_STANDARD_STREAM(s) memset(&s, 0, sizeof(s)); s.data = malloc(FTDM_CMD_CHUNK_LEN); \
+#define FTDM_STANDARD_STREAM(s) memset(&s, 0, sizeof(s)); s.data = ftdm_malloc(FTDM_CMD_CHUNK_LEN); \
 	assert(s.data);														\
 	memset(s.data, 0, FTDM_CMD_CHUNK_LEN);								\
 	s.end = s.data;														\
@@ -681,11 +681,13 @@
 
 typedef void *(*ftdm_malloc_func_t)(void *pool, ftdm_size_t len);
 typedef void *(*ftdm_calloc_func_t)(void *pool, ftdm_size_t elements, ftdm_size_t len);
+typedef void *(*ftdm_realloc_func_t)(void *pool, void *buff, ftdm_size_t len);
 typedef void (*ftdm_free_func_t)(void *pool, void *ptr);
 typedef struct ftdm_memory_handler {
 	void *pool;
 	ftdm_malloc_func_t malloc;
 	ftdm_calloc_func_t calloc;
+	ftdm_realloc_func_t realloc;
 	ftdm_free_func_t free;
 } ftdm_memory_handler_t;
 
@@ -874,6 +876,13 @@
 #define ftdm_malloc(chunksize) g_ftdm_mem_handler.malloc(g_ftdm_mem_handler.pool, chunksize)
 
 /*!
+  \brief Reallocates memory
+  \command buff the buffer
+  \command chunksize the chunk size
+*/
+#define ftdm_realloc(buff, chunksize) g_ftdm_mem_handler.realloc(g_ftdm_mem_handler.pool, buff, chunksize)
+
+/*!
   \brief Allocate initialized memory
   \command chunksize the chunk size
 */