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
*/