icc changes part 1

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@982 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Anthony Minessale 2006-03-30 23:02:50 +00:00
parent 14b58205b1
commit 64507e70ca
57 changed files with 1055 additions and 1048 deletions

View File

@ -57,7 +57,6 @@ src/include/switch_frame.h\
src/include/switch_ivr.h\ src/include/switch_ivr.h\
src/include/switch_loadable_module.h\ src/include/switch_loadable_module.h\
src/include/switch_module_interfaces.h\ src/include/switch_module_interfaces.h\
src/include/switch_mutex.h\
src/include/switch_platform.h\ src/include/switch_platform.h\
src/include/switch_resample.h\ src/include/switch_resample.h\
src/include/switch_sqlite.h\ src/include/switch_sqlite.h\
@ -71,7 +70,6 @@ src/switch_config.c \
src/switch_console.c \ src/switch_console.c \
src/switch_core.c \ src/switch_core.c \
src/switch_loadable_module.c \ src/switch_loadable_module.c \
src/switch_mutex.c \
src/switch_utils.c \ src/switch_utils.c \
src/switch_event.c \ src/switch_event.c \
src/switch_resample.c \ src/switch_resample.c \
@ -97,7 +95,6 @@ src/include/switch_frame.h\
src/include/switch_ivr.h\ src/include/switch_ivr.h\
src/include/switch_loadable_module.h\ src/include/switch_loadable_module.h\
src/include/switch_module_interfaces.h\ src/include/switch_module_interfaces.h\
src/include/switch_mutex.h\
src/include/switch_platform.h\ src/include/switch_platform.h\
src/include/switch_resample.h\ src/include/switch_resample.h\
src/include/switch_sqlite.h\ src/include/switch_sqlite.h\

View File

@ -46,12 +46,10 @@ DIST_COMMON = README $(am__configure_deps) $(library_include_HEADERS) \
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/configure $(top_srcdir)/src/include/config.h.in \ $(top_srcdir)/configure $(top_srcdir)/src/include/config.h.in \
$(top_srcdir)/src/include/switch_version.h.in AUTHORS COPYING \ $(top_srcdir)/src/include/switch_version.h.in AUTHORS COPYING \
ChangeLog INSTALL NEWS TODO build/config/compile \ ChangeLog INSTALL NEWS build/config/compile \
build/config/config.guess build/config/config.sub \ build/config/config.guess build/config/config.sub \
build/config/depcomp build/config/install-sh \ build/config/depcomp build/config/install-sh \
build/config/ltmain.sh build/config/missing compile \ build/config/ltmain.sh build/config/missing mkinstalldirs
config.guess config.sub depcomp install-sh ltmain.sh missing \
mkinstalldirs
subdir = . subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in am__aclocal_m4_deps = $(top_srcdir)/configure.in
@ -80,7 +78,6 @@ am_libfreeswitch_la_OBJECTS = libfreeswitch_la-switch_buffer.lo \
libfreeswitch_la-switch_console.lo \ libfreeswitch_la-switch_console.lo \
libfreeswitch_la-switch_core.lo \ libfreeswitch_la-switch_core.lo \
libfreeswitch_la-switch_loadable_module.lo \ libfreeswitch_la-switch_loadable_module.lo \
libfreeswitch_la-switch_mutex.lo \
libfreeswitch_la-switch_utils.lo \ libfreeswitch_la-switch_utils.lo \
libfreeswitch_la-switch_event.lo \ libfreeswitch_la-switch_event.lo \
libfreeswitch_la-switch_resample.lo \ libfreeswitch_la-switch_resample.lo \
@ -275,7 +272,6 @@ src/include/switch_frame.h\
src/include/switch_ivr.h\ src/include/switch_ivr.h\
src/include/switch_loadable_module.h\ src/include/switch_loadable_module.h\
src/include/switch_module_interfaces.h\ src/include/switch_module_interfaces.h\
src/include/switch_mutex.h\
src/include/switch_platform.h\ src/include/switch_platform.h\
src/include/switch_resample.h\ src/include/switch_resample.h\
src/include/switch_sqlite.h\ src/include/switch_sqlite.h\
@ -289,7 +285,6 @@ src/switch_config.c \
src/switch_console.c \ src/switch_console.c \
src/switch_core.c \ src/switch_core.c \
src/switch_loadable_module.c \ src/switch_loadable_module.c \
src/switch_mutex.c \
src/switch_utils.c \ src/switch_utils.c \
src/switch_event.c \ src/switch_event.c \
src/switch_resample.c \ src/switch_resample.c \
@ -314,7 +309,6 @@ src/include/switch_frame.h\
src/include/switch_ivr.h\ src/include/switch_ivr.h\
src/include/switch_loadable_module.h\ src/include/switch_loadable_module.h\
src/include/switch_module_interfaces.h\ src/include/switch_module_interfaces.h\
src/include/switch_mutex.h\
src/include/switch_platform.h\ src/include/switch_platform.h\
src/include/switch_resample.h\ src/include/switch_resample.h\
src/include/switch_sqlite.h\ src/include/switch_sqlite.h\
@ -468,7 +462,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfreeswitch_la-switch_event.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfreeswitch_la-switch_event.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfreeswitch_la-switch_ivr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfreeswitch_la-switch_ivr.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfreeswitch_la-switch_loadable_module.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfreeswitch_la-switch_loadable_module.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfreeswitch_la-switch_mutex.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfreeswitch_la-switch_resample.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfreeswitch_la-switch_resample.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfreeswitch_la-switch_utils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfreeswitch_la-switch_utils.Plo@am__quote@
@ -542,13 +535,6 @@ libfreeswitch_la-switch_loadable_module.lo: src/switch_loadable_module.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfreeswitch_la_CFLAGS) $(CFLAGS) -c -o libfreeswitch_la-switch_loadable_module.lo `test -f 'src/switch_loadable_module.c' || echo '$(srcdir)/'`src/switch_loadable_module.c @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfreeswitch_la_CFLAGS) $(CFLAGS) -c -o libfreeswitch_la-switch_loadable_module.lo `test -f 'src/switch_loadable_module.c' || echo '$(srcdir)/'`src/switch_loadable_module.c
libfreeswitch_la-switch_mutex.lo: src/switch_mutex.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfreeswitch_la_CFLAGS) $(CFLAGS) -MT libfreeswitch_la-switch_mutex.lo -MD -MP -MF "$(DEPDIR)/libfreeswitch_la-switch_mutex.Tpo" -c -o libfreeswitch_la-switch_mutex.lo `test -f 'src/switch_mutex.c' || echo '$(srcdir)/'`src/switch_mutex.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libfreeswitch_la-switch_mutex.Tpo" "$(DEPDIR)/libfreeswitch_la-switch_mutex.Plo"; else rm -f "$(DEPDIR)/libfreeswitch_la-switch_mutex.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/switch_mutex.c' object='libfreeswitch_la-switch_mutex.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfreeswitch_la_CFLAGS) $(CFLAGS) -c -o libfreeswitch_la-switch_mutex.lo `test -f 'src/switch_mutex.c' || echo '$(srcdir)/'`src/switch_mutex.c
libfreeswitch_la-switch_utils.lo: src/switch_utils.c libfreeswitch_la-switch_utils.lo: src/switch_utils.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfreeswitch_la_CFLAGS) $(CFLAGS) -MT libfreeswitch_la-switch_utils.lo -MD -MP -MF "$(DEPDIR)/libfreeswitch_la-switch_utils.Tpo" -c -o libfreeswitch_la-switch_utils.lo `test -f 'src/switch_utils.c' || echo '$(srcdir)/'`src/switch_utils.c; \ @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfreeswitch_la_CFLAGS) $(CFLAGS) -MT libfreeswitch_la-switch_utils.lo -MD -MP -MF "$(DEPDIR)/libfreeswitch_la-switch_utils.Tpo" -c -o libfreeswitch_la-switch_utils.lo `test -f 'src/switch_utils.c' || echo '$(srcdir)/'`src/switch_utils.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libfreeswitch_la-switch_utils.Tpo" "$(DEPDIR)/libfreeswitch_la-switch_utils.Plo"; else rm -f "$(DEPDIR)/libfreeswitch_la-switch_utils.Tpo"; exit 1; fi @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libfreeswitch_la-switch_utils.Tpo" "$(DEPDIR)/libfreeswitch_la-switch_utils.Plo"; else rm -f "$(DEPDIR)/libfreeswitch_la-switch_utils.Tpo"; exit 1; fi

172
aclocal.m4 vendored
View File

@ -143,7 +143,7 @@ rm="rm -f"
default_ofile=libtool default_ofile=libtool
can_build_shared=yes can_build_shared=yes
# All known linkers require a `.a' archive for static linking (except M$VC, # All known linkers require a `.a' archive for static linking (except MSVC,
# which needs '.lib'). # which needs '.lib').
libext=a libext=a
ltmain="$ac_aux_dir/ltmain.sh" ltmain="$ac_aux_dir/ltmain.sh"
@ -359,8 +359,8 @@ if test "X${echo_test_string+set}" != Xset; then
# find a string as large as possible, as long as the shell can cope with it # find a string as large as possible, as long as the shell can cope with it
for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
# expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
if (echo_test_string="`eval $cmd`") 2>/dev/null && if (echo_test_string=`eval $cmd`) 2>/dev/null &&
echo_test_string="`eval $cmd`" && echo_test_string=`eval $cmd` &&
(test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
then then
break break
@ -529,7 +529,7 @@ x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
# Find out which ABI we are using. # Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext echo 'int i;' > conftest.$ac_ext
if AC_TRY_EVAL(ac_compile); then if AC_TRY_EVAL(ac_compile); then
case "`/usr/bin/file conftest.o`" in case `/usr/bin/file conftest.o` in
*32-bit*) *32-bit*)
case $host in case $host in
x86_64-*linux*) x86_64-*linux*)
@ -611,7 +611,7 @@ AC_CACHE_CHECK([$1], [$2],
# with a dollar sign (not a hyphen), so the echo should work correctly. # with a dollar sign (not a hyphen), so the echo should work correctly.
# The option is referenced via a variable to avoid confusing sed. # The option is referenced via a variable to avoid confusing sed.
lt_compile=`echo "$ac_compile" | $SED \ lt_compile=`echo "$ac_compile" | $SED \
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
@ -650,7 +650,7 @@ AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
LDFLAGS="$LDFLAGS $3" LDFLAGS="$LDFLAGS $3"
printf "$lt_simple_link_test_code" > conftest.$ac_ext printf "$lt_simple_link_test_code" > conftest.$ac_ext
if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
# The compiler can only warn and ignore the option if not recognized # The linker can only warn and ignore the option if not recognized
# So say no if there are warnings # So say no if there are warnings
if test -s conftest.err; then if test -s conftest.err; then
# Append any errors to the config.log. # Append any errors to the config.log.
@ -725,7 +725,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
elif test -x /usr/sbin/sysctl; then elif test -x /usr/sbin/sysctl; then
lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
else else
lt_cv_sys_max_cmd_len=65536 # usable default for *BSD lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
fi fi
# And add a safety zone # And add a safety zone
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
@ -737,7 +737,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
# nice to cause kernel panics so lets avoid the loop below. # nice to cause kernel panics so lets avoid the loop below.
# First set a reasonable default. # First set a reasonable default.
lt_cv_sys_max_cmd_len=16384 lt_cv_sys_max_cmd_len=16384
# #
if test -x /sbin/sysconfig; then if test -x /sbin/sysconfig; then
case `/sbin/sysconfig -q proc exec_disable_arg_limit` in case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
*1*) lt_cv_sys_max_cmd_len=-1 ;; *1*) lt_cv_sys_max_cmd_len=-1 ;;
@ -854,7 +854,7 @@ int main ()
}] }]
EOF EOF
if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
(./conftest; exit; ) 2>/dev/null (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
lt_status=$? lt_status=$?
case x$lt_status in case x$lt_status in
x$lt_dlno_uscore) $1 ;; x$lt_dlno_uscore) $1 ;;
@ -1003,7 +1003,7 @@ AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
# Note that $ac_compile itself does not contain backslashes and begins # Note that $ac_compile itself does not contain backslashes and begins
# with a dollar sign (not a hyphen), so the echo should work correctly. # with a dollar sign (not a hyphen), so the echo should work correctly.
lt_compile=`echo "$ac_compile" | $SED \ lt_compile=`echo "$ac_compile" | $SED \
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
@ -1021,7 +1021,7 @@ AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
fi fi
fi fi
chmod u+w . chmod u+w . 2>&AS_MESSAGE_LOG_FD
$rm conftest* $rm conftest*
# SGI C++ compiler will create directory out/ii_files/ for # SGI C++ compiler will create directory out/ii_files/ for
# template instantiation # template instantiation
@ -1281,7 +1281,8 @@ cygwin* | mingw* | pw32*)
dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
dldir=$destdir/`dirname \$dlpath`~ dldir=$destdir/`dirname \$dlpath`~
test -d \$dldir || mkdir -p \$dldir~ test -d \$dldir || mkdir -p \$dldir~
$install_prog $dir/$dlname \$dldir/$dlname' $install_prog $dir/$dlname \$dldir/$dlname~
chmod a+x \$dldir/$dlname'
postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
dlpath=$dir/\$dldll~ dlpath=$dir/\$dldll~
$rm \$dlpath' $rm \$dlpath'
@ -1334,7 +1335,7 @@ darwin* | rhapsody*)
soname_spec='${libname}${release}${major}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext'
shlibpath_overrides_runpath=yes shlibpath_overrides_runpath=yes
shlibpath_var=DYLD_LIBRARY_PATH shlibpath_var=DYLD_LIBRARY_PATH
shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)' shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
# Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
if test "$GCC" = yes; then if test "$GCC" = yes; then
sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
@ -1372,7 +1373,14 @@ kfreebsd*-gnu)
freebsd* | dragonfly*) freebsd* | dragonfly*)
# DragonFly does not have aout. When/if they implement a new # DragonFly does not have aout. When/if they implement a new
# versioning mechanism, adjust this. # versioning mechanism, adjust this.
objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` if test -x /usr/bin/objformat; then
objformat=`/usr/bin/objformat`
else
case $host_os in
freebsd[[123]]*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
version_type=freebsd-$objformat version_type=freebsd-$objformat
case $version_type in case $version_type in
freebsd-elf*) freebsd-elf*)
@ -1417,7 +1425,7 @@ hpux9* | hpux10* | hpux11*)
version_type=sunos version_type=sunos
need_lib_prefix=no need_lib_prefix=no
need_version=no need_version=no
case "$host_cpu" in case $host_cpu in
ia64*) ia64*)
shrext_cmds='.so' shrext_cmds='.so'
hardcode_into_libs=yes hardcode_into_libs=yes
@ -1813,7 +1821,7 @@ AC_DEFUN([AC_LIBTOOL_DLOPEN],
# AC_LIBTOOL_WIN32_DLL # AC_LIBTOOL_WIN32_DLL
# -------------------- # --------------------
# declare package support for building win32 dll's # declare package support for building win32 DLLs
AC_DEFUN([AC_LIBTOOL_WIN32_DLL], AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
[AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
])# AC_LIBTOOL_WIN32_DLL ])# AC_LIBTOOL_WIN32_DLL
@ -1987,7 +1995,7 @@ dnl not every word. This closes a longstanding sh security hole.
if test -n "$file_magic_test_file"; then if test -n "$file_magic_test_file"; then
case $deplibs_check_method in case $deplibs_check_method in
"file_magic "*) "file_magic "*)
file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
MAGIC_CMD="$lt_cv_path_MAGIC_CMD" MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
$EGREP "$file_magic_regex" > /dev/null; then $EGREP "$file_magic_regex" > /dev/null; then
@ -2097,7 +2105,7 @@ AC_CACHE_VAL(lt_cv_path_LD,
if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
lt_cv_path_LD="$ac_dir/$ac_prog" lt_cv_path_LD="$ac_dir/$ac_prog"
# Check to see if the program is GNU ld. I'd rather use --version, # Check to see if the program is GNU ld. I'd rather use --version,
# but apparently some GNU ld's only accept -v. # but apparently some variants of GNU ld only accept -v.
# Break only if it was the GNU/non-GNU ld that we prefer. # Break only if it was the GNU/non-GNU ld that we prefer.
case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
*GNU* | *'with BFD'*) *GNU* | *'with BFD'*)
@ -2129,7 +2137,7 @@ AC_PROG_LD_GNU
AC_DEFUN([AC_PROG_LD_GNU], AC_DEFUN([AC_PROG_LD_GNU],
[AC_REQUIRE([AC_PROG_EGREP])dnl [AC_REQUIRE([AC_PROG_EGREP])dnl
AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
[# I'd rather use --version here, but apparently some GNU ld's only accept -v. [# I'd rather use --version here, but apparently some GNU lds only accept -v.
case `$LD -v 2>&1 </dev/null` in case `$LD -v 2>&1 </dev/null` in
*GNU* | *'with BFD'*) *GNU* | *'with BFD'*)
lt_cv_prog_gnu_ld=yes lt_cv_prog_gnu_ld=yes
@ -2243,7 +2251,7 @@ gnu*)
hpux10.20* | hpux11*) hpux10.20* | hpux11*)
lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_cmd=/usr/bin/file
case "$host_cpu" in case $host_cpu in
ia64*) ia64*)
lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
@ -2417,13 +2425,13 @@ esac
# ----------------------------------- # -----------------------------------
# sets LIBLTDL to the link flags for the libltdl convenience library and # sets LIBLTDL to the link flags for the libltdl convenience library and
# LTDLINCL to the include flags for the libltdl header and adds # LTDLINCL to the include flags for the libltdl header and adds
# --enable-ltdl-convenience to the configure arguments. Note that LIBLTDL # --enable-ltdl-convenience to the configure arguments. Note that
# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If # AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided,
# DIRECTORY is not provided, it is assumed to be `libltdl'. LIBLTDL will # it is assumed to be `libltdl'. LIBLTDL will be prefixed with
# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with # '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/'
# '${top_srcdir}/' (note the single quotes!). If your package is not # (note the single quotes!). If your package is not flat and you're not
# flat and you're not using automake, define top_builddir and # using automake, define top_builddir and top_srcdir appropriately in
# top_srcdir appropriately in the Makefiles. # the Makefiles.
AC_DEFUN([AC_LIBLTDL_CONVENIENCE], AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
case $enable_ltdl_convenience in case $enable_ltdl_convenience in
@ -2442,13 +2450,13 @@ AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
# ----------------------------------- # -----------------------------------
# sets LIBLTDL to the link flags for the libltdl installable library and # sets LIBLTDL to the link flags for the libltdl installable library and
# LTDLINCL to the include flags for the libltdl header and adds # LTDLINCL to the include flags for the libltdl header and adds
# --enable-ltdl-install to the configure arguments. Note that LIBLTDL # --enable-ltdl-install to the configure arguments. Note that
# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If # AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided,
# DIRECTORY is not provided and an installed libltdl is not found, it is # and an installed libltdl is not found, it is assumed to be `libltdl'.
# assumed to be `libltdl'. LIBLTDL will be prefixed with '${top_builddir}/' # LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with
# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single # '${top_srcdir}/' (note the single quotes!). If your package is not
# quotes!). If your package is not flat and you're not using automake, # flat and you're not using automake, define top_builddir and top_srcdir
# define top_builddir and top_srcdir appropriately in the Makefiles. # appropriately in the Makefiles.
# In the future, this macro may have to be called after AC_PROG_LIBTOOL. # In the future, this macro may have to be called after AC_PROG_LIBTOOL.
AC_DEFUN([AC_LIBLTDL_INSTALLABLE], AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
@ -2627,7 +2635,7 @@ test "$can_build_shared" = "no" && enable_shared=no
# On AIX, shared libraries and static libraries use the same namespace, and # On AIX, shared libraries and static libraries use the same namespace, and
# are all built from PIC. # are all built from PIC.
case "$host_os" in case $host_os in
aix3*) aix3*)
test "$enable_shared" = yes && enable_static=no test "$enable_shared" = yes && enable_static=no
if test -n "$RANLIB"; then if test -n "$RANLIB"; then
@ -2694,7 +2702,7 @@ _LT_AC_TAGVAR(postdeps, $1)=
_LT_AC_TAGVAR(compiler_lib_search_path, $1)= _LT_AC_TAGVAR(compiler_lib_search_path, $1)=
# Source file extension for C++ test sources. # Source file extension for C++ test sources.
ac_ext=cc ac_ext=cpp
# Object file extension for compiled C++ test sources. # Object file extension for compiled C++ test sources.
objext=o objext=o
@ -2910,7 +2918,7 @@ case $host_os in
# Exported symbols can be pulled into shared objects from archives # Exported symbols can be pulled into shared objects from archives
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
# This is similar to how AIX traditionally builds it's shared libraries. # This is similar to how AIX traditionally builds its shared libraries.
_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
fi fi
fi fi
@ -2949,7 +2957,7 @@ case $host_os in
fi fi
;; ;;
darwin* | rhapsody*) darwin* | rhapsody*)
case "$host_os" in case $host_os in
rhapsody* | darwin1.[[012]]) rhapsody* | darwin1.[[012]])
_LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
;; ;;
@ -2987,7 +2995,7 @@ case $host_os in
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
fi fi
_LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
# Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
if test "X$lt_int_apple_cc_single_mod" = Xyes ; then if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
else else
@ -3000,7 +3008,7 @@ case $host_os in
output_verbose_link_cmd='echo' output_verbose_link_cmd='echo'
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
_LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
# Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
_LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
;; ;;
@ -3080,7 +3088,7 @@ case $host_os in
;; ;;
hpux10*|hpux11*) hpux10*|hpux11*)
if test $with_gnu_ld = no; then if test $with_gnu_ld = no; then
case "$host_cpu" in case $host_cpu in
hppa*64*) hppa*64*)
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
@ -3096,7 +3104,7 @@ case $host_os in
;; ;;
esac esac
fi fi
case "$host_cpu" in case $host_cpu in
hppa*64*) hppa*64*)
_LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_direct, $1)=no
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
@ -3122,7 +3130,7 @@ case $host_os in
_LT_AC_TAGVAR(ld_shlibs, $1)=no _LT_AC_TAGVAR(ld_shlibs, $1)=no
;; ;;
aCC*) aCC*)
case "$host_cpu" in case $host_cpu in
hppa*64*|ia64*) hppa*64*|ia64*)
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
;; ;;
@ -3143,7 +3151,7 @@ case $host_os in
*) *)
if test "$GXX" = yes; then if test "$GXX" = yes; then
if test $with_gnu_ld = no; then if test $with_gnu_ld = no; then
case "$host_cpu" in case $host_cpu in
ia64*|hppa*64*) ia64*|hppa*64*)
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
;; ;;
@ -3244,7 +3252,7 @@ case $host_os in
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive,`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
;; ;;
cxx*) cxx*)
# Compaq C++ # Compaq C++
@ -3476,10 +3484,11 @@ case $host_os in
case $cc_basename in case $cc_basename in
CC*) CC*)
# Sun C++ 4.2, 5.x and Centerline C++ # Sun C++ 4.2, 5.x and Centerline C++
_LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes
_LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
$CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
@ -3499,15 +3508,7 @@ case $host_os in
esac esac
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
# Commands to make compiler produce verbose output that lists output_verbose_link_cmd='echo'
# what "hidden" libraries, object files and flags are used when
# linking a shared library.
#
# There doesn't appear to be a way to prevent this compiler from
# explicitly linking system object files so we need to strip them
# from the output so that they don't get included in the library
# dependencies.
output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
# Archives containing C++ object files must be created using # Archives containing C++ object files must be created using
# "CC -xar", where "CC" is the Sun C++ compiler. This is # "CC -xar", where "CC" is the Sun C++ compiler. This is
@ -3664,7 +3665,7 @@ if AC_TRY_EVAL(ac_compile); then
# The `*' in the case matches for architectures that use `case' in # The `*' in the case matches for architectures that use `case' in
# $output_verbose_cmd can trigger glob expansion during the loop # $output_verbose_cmd can trigger glob expansion during the loop
# eval without this substitution. # eval without this substitution.
output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`" output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"`
for p in `eval $output_verbose_link_cmd`; do for p in `eval $output_verbose_link_cmd`; do
case $p in case $p in
@ -3740,6 +3741,21 @@ fi
$rm -f confest.$objext $rm -f confest.$objext
# PORTME: override above test on systems where it is broken
ifelse([$1],[CXX],
[case $host_os in
solaris*)
case $cc_basename in
CC*)
# Adding this requires a known-good setup of shared libraries for
# Sun compiler versions before 5.6, else PIC objects from an old
# archive will be linked into the output, leading to subtle bugs.
_LT_AC_TAGVAR(postdeps,$1)='-lCstd -lCrun'
;;
esac
esac
])
case " $_LT_AC_TAGVAR(postdeps, $1) " in case " $_LT_AC_TAGVAR(postdeps, $1) " in
*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; *" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
esac esac
@ -3809,7 +3825,7 @@ test "$can_build_shared" = "no" && enable_shared=no
# On AIX, shared libraries and static libraries use the same namespace, and # On AIX, shared libraries and static libraries use the same namespace, and
# are all built from PIC. # are all built from PIC.
case "$host_os" in case $host_os in
aix3*) aix3*)
test "$enable_shared" = yes && enable_static=no test "$enable_shared" = yes && enable_static=no
if test -n "$RANLIB"; then if test -n "$RANLIB"; then
@ -4708,7 +4724,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
hpux*) hpux*)
# PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
# not for PA HP-UX. # not for PA HP-UX.
case "$host_cpu" in case $host_cpu in
hppa*64*|ia64*) hppa*64*|ia64*)
;; ;;
*) *)
@ -4777,7 +4793,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
aCC*) aCC*)
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
case "$host_cpu" in case $host_cpu in
hppa*64*|ia64*) hppa*64*|ia64*)
# +Z the default # +Z the default
;; ;;
@ -4818,7 +4834,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
# Portland Group C++ compiler. # Portland Group C++ compiler.
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
;; ;;
cxx*) cxx*)
# Compaq C++ # Compaq C++
@ -4982,7 +4998,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
hpux*) hpux*)
# PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
# not for PA HP-UX. # not for PA HP-UX.
case "$host_cpu" in case $host_cpu in
hppa*64*|ia64*) hppa*64*|ia64*)
# +Z the default # +Z the default
;; ;;
@ -5029,7 +5045,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
# PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
# not for PA HP-UX. # not for PA HP-UX.
case "$host_cpu" in case $host_cpu in
hppa*64*|ia64*) hppa*64*|ia64*)
# +Z the default # +Z the default
;; ;;
@ -5059,12 +5075,12 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
;; ;;
pgcc* | pgf77* | pgf90*) pgcc* | pgf77* | pgf90* | pgf95*)
# Portland Group compilers (*not* the Pentium gcc compiler, # Portland Group compilers (*not* the Pentium gcc compiler,
# which looks to be a dead project) # which looks to be a dead project)
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
;; ;;
ccc*) ccc*)
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
@ -5147,7 +5163,7 @@ if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
[_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
_LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
fi fi
case "$host_os" in case $host_os in
# For platforms which do not support PIC, -DPIC is meaningless: # For platforms which do not support PIC, -DPIC is meaningless:
*djgpp*) *djgpp*)
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
@ -5243,7 +5259,7 @@ ifelse([$1],[CXX],[
if test "$with_gnu_ld" = yes; then if test "$with_gnu_ld" = yes; then
# If archive_cmds runs LD, not CC, wlarc should be empty # If archive_cmds runs LD, not CC, wlarc should be empty
wlarc='${wl}' wlarc='${wl}'
# Set some defaults for GNU ld with shared library support. These # Set some defaults for GNU ld with shared library support. These
# are reset later if shared libraries are not supported. Putting them # are reset later if shared libraries are not supported. Putting them
# here allows them to be overridden if necessary. # here allows them to be overridden if necessary.
@ -5264,7 +5280,7 @@ ifelse([$1],[CXX],[
*\ 2.11.*) ;; # other 2.11 versions *\ 2.11.*) ;; # other 2.11 versions
*) supports_anon_versioning=yes ;; *) supports_anon_versioning=yes ;;
esac esac
# See if GNU ld supports shared libraries. # See if GNU ld supports shared libraries.
case $host_os in case $host_os in
aix3* | aix4* | aix5*) aix3* | aix4* | aix5*)
@ -5338,11 +5354,11 @@ EOF
tmp_addflag= tmp_addflag=
case $cc_basename,$host_cpu in case $cc_basename,$host_cpu in
pgcc*) # Portland Group C compiler pgcc*) # Portland Group C compiler
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive,`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
tmp_addflag=' $pic_flag' tmp_addflag=' $pic_flag'
;; ;;
pgf77* | pgf90* ) # Portland Group f77 and f90 compilers pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive,`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
tmp_addflag=' $pic_flag -Mnomain' ;; tmp_addflag=' $pic_flag -Mnomain' ;;
ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
tmp_addflag=' -i_dynamic' ;; tmp_addflag=' -i_dynamic' ;;
@ -5548,7 +5564,7 @@ EOF
# Exported symbols can be pulled into shared objects from archives # Exported symbols can be pulled into shared objects from archives
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
# This is similar to how AIX traditionally builds it's shared libraries. # This is similar to how AIX traditionally builds its shared libraries.
_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
fi fi
fi fi
@ -5588,7 +5604,7 @@ EOF
;; ;;
darwin* | rhapsody*) darwin* | rhapsody*)
case "$host_os" in case $host_os in
rhapsody* | darwin1.[[012]]) rhapsody* | darwin1.[[012]])
_LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
;; ;;
@ -5617,7 +5633,7 @@ EOF
output_verbose_link_cmd='echo' output_verbose_link_cmd='echo'
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
_LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
# Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
_LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
else else
@ -5626,7 +5642,7 @@ EOF
output_verbose_link_cmd='echo' output_verbose_link_cmd='echo'
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
_LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
# Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
_LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
;; ;;
@ -5692,7 +5708,7 @@ EOF
hpux10* | hpux11*) hpux10* | hpux11*)
if test "$GCC" = yes -a "$with_gnu_ld" = no; then if test "$GCC" = yes -a "$with_gnu_ld" = no; then
case "$host_cpu" in case $host_cpu in
hppa*64*|ia64*) hppa*64*|ia64*)
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
;; ;;
@ -5701,7 +5717,7 @@ EOF
;; ;;
esac esac
else else
case "$host_cpu" in case $host_cpu in
hppa*64*|ia64*) hppa*64*|ia64*)
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
;; ;;
@ -5711,7 +5727,7 @@ EOF
esac esac
fi fi
if test "$with_gnu_ld" = no; then if test "$with_gnu_ld" = no; then
case "$host_cpu" in case $host_cpu in
hppa*64*) hppa*64*)
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'

323
configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,28 +1,30 @@
applications/mod_bridgecall applications/mod_bridgecall
applications/mod_playback applications/mod_echo
#applications/mod_ivrtest #applications/mod_ivrtest
applications/mod_playback
#applications/mod_skel #applications/mod_skel
codecs/mod_gsm #asr_tts/mod_cepstral
codecs/mod_g711 codecs/mod_g711
#codecs/mod_g729
codecs/mod_gsm
#codecs/mod_ilbc
codecs/mod_l16 codecs/mod_l16
#codecs/mod_speex #codecs/mod_speex
dialplans/mod_dialplan_demo dialplans/mod_dialplan_demo
#dialplans/mod_dialplan_directory
dialplans/mod_pcre
#directories/mod_ldap
endpoints/mod_exosip endpoints/mod_exosip
endpoints/mod_iax endpoints/mod_iax
#endpoints/mod_opal #endpoints/mod_opal
#endpoints/mod_portaudio #endpoints/mod_portaudio
#endpoints/mod_wanpipe #endpoints/mod_wanpipe
#endpoints/mod_woomera #endpoints/mod_woomera
#event_handlers/mod_event_multicast
#event_handlers/mod_event_test #event_handlers/mod_event_test
#event_handlers/mod_xmpp_event #event_handlers/mod_xmpp_event
formats/mod_sndfile
timers/mod_softtimer
dialplans/mod_pcre
#directories/mod_ldap
#dialplans/mod_dialplan_directory
#event_handlers/mod_zeroconf #event_handlers/mod_zeroconf
#asr_tts/mod_cepstral formats/mod_sndfile
#languages/mod_spidermonkey
#languages/mod_perl #languages/mod_perl
#languages/mod_spidermonkey
timers/mod_softtimer

View File

@ -57,7 +57,6 @@ extern "C" {
#include <switch_console.h> #include <switch_console.h>
#include <switch_utils.h> #include <switch_utils.h>
#include <switch_caller.h> #include <switch_caller.h>
#include <switch_mutex.h>
#include <switch_config.h> #include <switch_config.h>
#include <switch_frame.h> #include <switch_frame.h>
#include <switch_module_interfaces.h> #include <switch_module_interfaces.h>

View File

@ -1342,6 +1342,74 @@ DoxyDefine(apr_status_t switch_queue_trypop(switch_queue_t *queue, void **data);
DoxyDefine(apr_status_t switch_queue_trypush(switch_queue_t *queue, void *data);) DoxyDefine(apr_status_t switch_queue_trypush(switch_queue_t *queue, void *data);)
#define switch_queue_trypush apr_queue_trypush #define switch_queue_trypush apr_queue_trypush
/**
* @defgroup switch_thread_mutex Thread Mutex Routines
* @ingroup switch_apr
* @{
*/
/** Opaque thread-local mutex structure */
typedef apr_thread_mutex_t switch_mutex_t;
/** Lock Flags */
#define SWITCH_MUTEX_DEFAULT APR_THREAD_MUTEX_DEFAULT /**< platform-optimal lock behavior */
#define SWITCH_MUTEX_NESTED APR_THREAD_MUTEX_NESTED /**< enable nested (recursive) locks */
#define SWITCH_MUTEX_UNNESTED APR_THREAD_MUTEX_UNNESTED /**< disable nested locks */
/**
* Create and initialize a mutex that can be used to synchronize threads.
* @param lock the memory address where the newly created mutex will be
* stored.
* @param flags Or'ed value of:
* <PRE>
* SWITCH_THREAD_MUTEX_DEFAULT platform-optimal lock behavior.
* SWITCH_THREAD_MUTEX_NESTED enable nested (recursive) locks.
* SWITCH_THREAD_MUTEX_UNNESTED disable nested locks (non-recursive).
* </PRE>
* @param pool the pool from which to allocate the mutex.
* @warning Be cautious in using SWITCH_THREAD_MUTEX_DEFAULT. While this is the
* most optimial mutex based on a given platform's performance charateristics,
* it will behave as either a nested or an unnested lock.
*
SWITCH_DECLARE(switch_status) switch_mutex_init(switch_mutex_t **lock,
switch_lock_flag flags,
switch_memory_pool *pool);
*/
#define switch_mutex_init apr_thread_mutex_create
/**
* Destroy the mutex and free the memory associated with the lock.
* @param lock the mutex to destroy.
*/
//SWITCH_DECLARE(switch_status) switch_mutex_destroy(switch_mutex_t *lock);
#define switch_mutex_destroy apr_thread_mutex_destroy
/**
* Acquire the lock for the given mutex. If the mutex is already locked,
* the current thread will be put to sleep until the lock becomes available.
* @param lock the mutex on which to acquire the lock.
*/
//SWITCH_DECLARE(switch_status) switch_mutex_lock(switch_mutex_t *lock);
#define switch_mutex_lock apr_thread_mutex_lock
/**
* Release the lock for the given mutex.
* @param lock the mutex from which to release the lock.
*/
//SWITCH_DECLARE(switch_status) switch_mutex_unlock(switch_mutex_t *lock);
#define switch_mutex_unlock apr_thread_mutex_unlock
/**
* Attempt to acquire the lock for the given mutex. If the mutex has already
* been acquired, the call returns immediately with APR_EBUSY. Note: it
* is important that the APR_STATUS_IS_EBUSY(s) macro be used to determine
* if the return value was APR_EBUSY, for portability reasons.
* @param lock the mutex on which to attempt the lock acquiring.
*/
//SWITCH_DECLARE(switch_status) switch_mutex_trylock(switch_mutex_t *lock);
#define switch_mutex_trylock apr_thread_mutex_trylock
/** @} */ /** @} */
/** @} */ /** @} */

View File

@ -62,25 +62,25 @@ struct switch_buffer;
* \param max_len length required by the buffer * \param max_len length required by the buffer
* \return status * \return status
*/ */
SWITCH_DECLARE(switch_status) switch_buffer_create(switch_memory_pool *pool, switch_buffer **buffer, size_t max_len); SWITCH_DECLARE(switch_status) switch_buffer_create(switch_memory_pool *pool, switch_buffer **buffer, switch_size_t max_len);
/*! \brief Get the length of a switch_buffer /*! \brief Get the length of a switch_buffer
* \param buffer any buffer of type switch_buffer * \param buffer any buffer of type switch_buffer
* \return int size of the buffer. * \return int size of the buffer.
*/ */
SWITCH_DECLARE(int) switch_buffer_len(switch_buffer *buffer); SWITCH_DECLARE(switch_size_t) switch_buffer_len(switch_buffer *buffer);
/*! \brief Get the freespace of a switch_buffer /*! \brief Get the freespace of a switch_buffer
* \param buffer any buffer of type switch_buffer * \param buffer any buffer of type switch_buffer
* \return int freespace in the buffer. * \return int freespace in the buffer.
*/ */
SWITCH_DECLARE(int) switch_buffer_freespace(switch_buffer *buffer); SWITCH_DECLARE(switch_size_t) switch_buffer_freespace(switch_buffer *buffer);
/*! \brief Get the in use amount of a switch_buffer /*! \brief Get the in use amount of a switch_buffer
* \param buffer any buffer of type switch_buffer * \param buffer any buffer of type switch_buffer
* \return int ammount of buffer curently in use * \return int ammount of buffer curently in use
*/ */
SWITCH_DECLARE(size_t) switch_buffer_inuse(switch_buffer *buffer); SWITCH_DECLARE(switch_size_t) switch_buffer_inuse(switch_buffer *buffer);
/*! \brief Read data from a switch_buffer up to the ammount of datalen if it is available. Remove read data from buffer. /*! \brief Read data from a switch_buffer up to the ammount of datalen if it is available. Remove read data from buffer.
* \param buffer any buffer of type switch_buffer * \param buffer any buffer of type switch_buffer
@ -88,7 +88,7 @@ SWITCH_DECLARE(size_t) switch_buffer_inuse(switch_buffer *buffer);
* \param datalen amount of data to be returned * \param datalen amount of data to be returned
* \return int ammount of data actually read * \return int ammount of data actually read
*/ */
SWITCH_DECLARE(int) switch_buffer_read(switch_buffer *buffer, void *data, size_t datalen); SWITCH_DECLARE(switch_size_t) switch_buffer_read(switch_buffer *buffer, void *data, switch_size_t datalen);
/*! \brief Write data into a switch_buffer up to the length of datalen /*! \brief Write data into a switch_buffer up to the length of datalen
* \param buffer any buffer of type switch_buffer * \param buffer any buffer of type switch_buffer
@ -96,14 +96,14 @@ SWITCH_DECLARE(int) switch_buffer_read(switch_buffer *buffer, void *data, size_t
* \param datalen amount of data to be written * \param datalen amount of data to be written
* \return int amount of buffer used after the write, or 0 if no space available * \return int amount of buffer used after the write, or 0 if no space available
*/ */
SWITCH_DECLARE(int) switch_buffer_write(switch_buffer *buffer, void *data, size_t datalen); SWITCH_DECLARE(switch_size_t) switch_buffer_write(switch_buffer *buffer, void *data, switch_size_t datalen);
/*! \brief Remove data from the buffer /*! \brief Remove data from the buffer
* \param buffer any buffer of type switch_buffer * \param buffer any buffer of type switch_buffer
* \param datalen amount of data to be removed * \param datalen amount of data to be removed
* \return int size of buffer, or 0 if unable to toss that much data * \return int size of buffer, or 0 if unable to toss that much data
*/ */
SWITCH_DECLARE(int) switch_buffer_toss(switch_buffer *buffer, size_t datalen); SWITCH_DECLARE(switch_size_t) switch_buffer_toss(switch_buffer *buffer, switch_size_t datalen);
/*! \brief Remove all data from the buffer /*! \brief Remove all data from the buffer
* \param buffer any buffer of type switch_buffer * \param buffer any buffer of type switch_buffer

View File

@ -105,7 +105,7 @@ SWITCH_DECLARE(switch_status) switch_channel_alloc(switch_channel **channel, swi
SWITCH_DECLARE(switch_status) switch_channel_init(switch_channel *channel, SWITCH_DECLARE(switch_status) switch_channel_init(switch_channel *channel,
switch_core_session *session, switch_core_session *session,
switch_channel_state state, switch_channel_state state,
switch_channel_flag flags); uint32_t flags);
/*! /*!
\brief Set the given channel's caller profile \brief Set the given channel's caller profile
@ -192,25 +192,23 @@ SWITCH_DECLARE(switch_caller_extension *) switch_channel_get_caller_extension(sw
\brief Test for presence of given flag(s) on a given channel \brief Test for presence of given flag(s) on a given channel
\param channel channel to test \param channel channel to test
\param flags or'd list of channel flags to test \param flags or'd list of channel flags to test
\return SWITCH_STATUS_SUCCESS if provided flags are set \return TRUE if flags were present
*/ */
SWITCH_DECLARE(switch_status) switch_channel_test_flag(switch_channel *channel, int flags); SWITCH_DECLARE(int) switch_channel_test_flag(switch_channel *channel, switch_channel_flag flags);
/*! /*!
\brief Set given flag(s) on a given channel \brief Set given flag(s) on a given channel
\param channel channel on which to set flag(s) \param channel channel on which to set flag(s)
\param flags or'd list of flags to set \param flags or'd list of flags to set
\return SWITCH_STATUS_SUCCESS if flags were set
*/ */
SWITCH_DECLARE(switch_status) switch_channel_set_flag(switch_channel *channel, int flags); SWITCH_DECLARE(void) switch_channel_set_flag(switch_channel *channel, switch_channel_flag flags);
/*! /*!
\brief Clear given flag(s) from a channel \brief Clear given flag(s) from a channel
\param channel channel to clear flags from \param channel channel to clear flags from
\param flags or'd list of flags to clear \param flags or'd list of flags to clear
\return SWITCH_STATUS_SUCCESS if flags were cleared
*/ */
SWITCH_DECLARE(switch_status) switch_channel_clear_flag(switch_channel *channel, int flags); SWITCH_DECLARE(void) switch_channel_clear_flag(switch_channel *channel, switch_channel_flag flags);
/*! /*!
\brief Answer a channel (initiate/acknowledge a successful connection) \brief Answer a channel (initiate/acknowledge a successful connection)
@ -284,7 +282,7 @@ SWITCH_DECLARE(switch_channel_state) switch_channel_hangup(switch_channel *chann
\param channel channel to test \param channel channel to test
\return number of digits in the queue \return number of digits in the queue
*/ */
SWITCH_DECLARE(size_t) switch_channel_has_dtmf(switch_channel *channel); SWITCH_DECLARE(switch_size_t) switch_channel_has_dtmf(switch_channel *channel);
/*! /*!
\brief Queue DTMF on a given channel \brief Queue DTMF on a given channel
@ -301,7 +299,7 @@ SWITCH_DECLARE(switch_status) switch_channel_queue_dtmf(switch_channel *channel,
\param len max size in bytes of the buffer \param len max size in bytes of the buffer
\return number of bytes read into the buffer \return number of bytes read into the buffer
*/ */
SWITCH_DECLARE(int) switch_channel_dequeue_dtmf(switch_channel *channel, char *dtmf, size_t len); SWITCH_DECLARE(int) switch_channel_dequeue_dtmf(switch_channel *channel, char *dtmf, switch_size_t len);
/*! /*!
\brief Render the name of the provided state enum \brief Render the name of the provided state enum

View File

@ -59,22 +59,22 @@ struct switch_core_session_message {
/*! optional string arg*/ /*! optional string arg*/
char *string_arg; char *string_arg;
/*! optional string arg*/ /*! optional string arg*/
size_t string_arg_size; switch_size_t string_arg_size;
/*! optional arbitrary pointer arg */ /*! optional arbitrary pointer arg */
void *pointer_arg; void *pointer_arg;
/*! optional arbitrary pointer arg's size */ /*! optional arbitrary pointer arg's size */
size_t pointer_arg_size; switch_size_t pointer_arg_size;
/*! optional numeric reply*/ /*! optional numeric reply*/
int numeric_reply; int numeric_reply;
/*! optional string reply*/ /*! optional string reply*/
char *string_reply; char *string_reply;
/*! optional string reply*/ /*! optional string reply*/
size_t string_reply_size; switch_size_t string_reply_size;
/*! optional arbitrary pointer reply */ /*! optional arbitrary pointer reply */
void *pointer_reply; void *pointer_reply;
/*! optional arbitrary pointer reply's size */ /*! optional arbitrary pointer reply's size */
size_t pointer_reply_size; switch_size_t pointer_reply_size;
}; };
@ -169,7 +169,7 @@ SWITCH_DECLARE(unsigned int) switch_core_session_runing(switch_core_session *ses
\return a void pointer to the allocated memory \return a void pointer to the allocated memory
\note this memory never goes out of scope until the core is destroyed \note this memory never goes out of scope until the core is destroyed
*/ */
SWITCH_DECLARE(void *) switch_core_permenant_alloc(size_t memory); SWITCH_DECLARE(void *) switch_core_permenant_alloc(switch_size_t memory);
/*! /*!
\brief Allocate memory directly from a memory pool \brief Allocate memory directly from a memory pool
@ -177,7 +177,7 @@ SWITCH_DECLARE(void *) switch_core_permenant_alloc(size_t memory);
\param memory the number of bytes to allocate \param memory the number of bytes to allocate
\return a void pointer to the allocated memory \return a void pointer to the allocated memory
*/ */
SWITCH_DECLARE(void *) switch_core_alloc(switch_memory_pool *pool, size_t memory); SWITCH_DECLARE(void *) switch_core_alloc(switch_memory_pool *pool, switch_size_t memory);
/*! /*!
\brief Allocate memory from a session's pool \brief Allocate memory from a session's pool
@ -186,7 +186,7 @@ SWITCH_DECLARE(void *) switch_core_alloc(switch_memory_pool *pool, size_t memory
\return a void pointer to the newly allocated memory \return a void pointer to the newly allocated memory
\note the memory will be in scope as long as the session exists \note the memory will be in scope as long as the session exists
*/ */
SWITCH_DECLARE(void *) switch_core_session_alloc(switch_core_session *session, size_t memory); SWITCH_DECLARE(void *) switch_core_session_alloc(switch_core_session *session, switch_size_t memory);
/*! /*!
\brief Copy a string using permenant memory allocation \brief Copy a string using permenant memory allocation
@ -610,7 +610,7 @@ SWITCH_DECLARE(switch_status) switch_core_codec_init(switch_codec *codec,
int rate, int rate,
int ms, int ms,
int channels, int channels,
switch_codec_flag flags, uint32_t flags,
const switch_codec_settings *codec_settings, const switch_codec_settings *codec_settings,
switch_memory_pool *pool); switch_memory_pool *pool);
@ -631,10 +631,10 @@ SWITCH_DECLARE(switch_status) switch_core_codec_init(switch_codec *codec,
SWITCH_DECLARE(switch_status) switch_core_codec_encode(switch_codec *codec, SWITCH_DECLARE(switch_status) switch_core_codec_encode(switch_codec *codec,
switch_codec *other_codec, switch_codec *other_codec,
void *decoded_data, void *decoded_data,
size_t decoded_data_len, switch_size_t decoded_data_len,
int decoded_rate, int decoded_rate,
void *encoded_data, void *encoded_data,
size_t *encoded_data_len, switch_size_t *encoded_data_len,
int *encoded_rate, int *encoded_rate,
unsigned int *flag); unsigned int *flag);
@ -655,10 +655,10 @@ SWITCH_DECLARE(switch_status) switch_core_codec_encode(switch_codec *codec,
SWITCH_DECLARE(switch_status) switch_core_codec_decode(switch_codec *codec, SWITCH_DECLARE(switch_status) switch_core_codec_decode(switch_codec *codec,
switch_codec *other_codec, switch_codec *other_codec,
void *encoded_data, void *encoded_data,
size_t encoded_data_len, switch_size_t encoded_data_len,
int encoded_rate, int encoded_rate,
void *decoded_data, void *decoded_data,
size_t *decoded_data_len, switch_size_t *decoded_data_len,
int *decoded_rate, int *decoded_rate,
unsigned int *flag); unsigned int *flag);
@ -739,7 +739,7 @@ SWITCH_DECLARE(switch_status) switch_core_file_open(switch_file_handle *fh, char
\param len the max size of the buffer \param len the max size of the buffer
\return SWITCH_STATUS_SUCCESS with len adjusted to the bytes read if successful \return SWITCH_STATUS_SUCCESS with len adjusted to the bytes read if successful
*/ */
SWITCH_DECLARE(switch_status) switch_core_file_read(switch_file_handle *fh, void *data, size_t *len); SWITCH_DECLARE(switch_status) switch_core_file_read(switch_file_handle *fh, void *data, switch_size_t *len);
/*! /*!
\brief Write media to a file handle \brief Write media to a file handle
@ -748,7 +748,7 @@ SWITCH_DECLARE(switch_status) switch_core_file_read(switch_file_handle *fh, void
\param len the amount of data to write from the buffer \param len the amount of data to write from the buffer
\return SWITCH_STATUS_SUCCESS with len adjusted to the bytes written if successful \return SWITCH_STATUS_SUCCESS with len adjusted to the bytes written if successful
*/ */
SWITCH_DECLARE(switch_status) switch_core_file_write(switch_file_handle *fh, void *data, size_t *len); SWITCH_DECLARE(switch_status) switch_core_file_write(switch_file_handle *fh, void *data, switch_size_t *len);
/*! /*!
\brief Seek a position in a file \brief Seek a position in a file
@ -829,8 +829,8 @@ SWITCH_DECLARE(switch_status) switch_core_speech_feed_tts(switch_speech_handle *
*/ */
SWITCH_DECLARE(switch_status) switch_core_speech_read_tts(switch_speech_handle *sh, SWITCH_DECLARE(switch_status) switch_core_speech_read_tts(switch_speech_handle *sh,
void *data, void *data,
size_t *datalen, switch_size_t *datalen,
size_t *rate, switch_size_t *rate,
switch_speech_flag *flags); switch_speech_flag *flags);
/*! /*!
\brief Close an open speech handle \brief Close an open speech handle

View File

@ -229,7 +229,7 @@ SWITCH_DECLARE(switch_status) switch_event_reserve_subclass_detailed(char *owner
\return SWITCH_STATUS_SUCCESS if the operation was successful \return SWITCH_STATUS_SUCCESS if the operation was successful
\note the body supplied by this function will supersede an existing body the event may have \note the body supplied by this function will supersede an existing body the event may have
*/ */
SWITCH_DECLARE(switch_status) switch_event_serialize(switch_event *event, char *buf, size_t buflen, char *fmt, ...); SWITCH_DECLARE(switch_status) switch_event_serialize(switch_event *event, char *buf, switch_size_t buflen, char *fmt, ...);
/*! /*!
\brief Determine if the event system has been initilized \brief Determine if the event system has been initilized

View File

@ -49,13 +49,15 @@ struct switch_frame {
/*! the frame data */ /*! the frame data */
void *data; void *data;
/*! the size of the buffer that is in use */ /*! the size of the buffer that is in use */
size_t datalen; switch_size_t datalen;
/*! the entire size of the buffer */ /*! the entire size of the buffer */
size_t buflen; switch_size_t buflen;
/*! the number of audio samples present (audio only) */ /*! the number of audio samples present (audio only) */
size_t samples; switch_size_t samples;
/*! the rate of the frame */ /*! the rate of the frame */
int rate; int rate;
/*! the timestamp of the frame */
int32_t timestamp;
}; };
#ifdef __cplusplus #ifdef __cplusplus

View File

@ -144,7 +144,7 @@ SWITCH_DECLARE(switch_status) switch_ivr_speak_text(switch_core_session *session
char *tts_name, char *tts_name,
char *voice_name, char *voice_name,
char *timer_name, char *timer_name,
size_t rate, switch_size_t rate,
switch_dtmf_callback_function dtmf_callback, switch_dtmf_callback_function dtmf_callback,
char *text, char *text,
void *buf, void *buf,

View File

@ -165,7 +165,6 @@ SWITCH_DECLARE(int) switch_loadable_module_get_codecs(switch_memory_pool *pool,
/*! /*!
\brief Retrieve the list of loaded codecs into an array based on another array showing the sorted order \brief Retrieve the list of loaded codecs into an array based on another array showing the sorted order
\param pool the memory pool to use for the hash index
\param array the array to populate \param array the array to populate
\param arraylen the max size in elements of the array \param arraylen the max size in elements of the array
\param prefs the array of preferred codec names \param prefs the array of preferred codec names
@ -173,8 +172,7 @@ SWITCH_DECLARE(int) switch_loadable_module_get_codecs(switch_memory_pool *pool,
\return the number of elements added to the array \return the number of elements added to the array
\note this function only considers codecs that are listed in the "prefs" array and ignores the rest. \note this function only considers codecs that are listed in the "prefs" array and ignores the rest.
*/ */
SWITCH_DECLARE(int) switch_loadable_module_get_codecs_sorted(switch_memory_pool *pool, SWITCH_DECLARE(int) switch_loadable_module_get_codecs_sorted(switch_codec_interface **array,
switch_codec_interface **array,
int arraylen, int arraylen,
char **prefs, char **prefs,
int preflen); int preflen);
@ -187,7 +185,7 @@ SWITCH_DECLARE(int) switch_loadable_module_get_codecs_sorted(switch_memory_pool
\param len the length in bytes of retbuf \param len the length in bytes of retbuf
\return the status returned by the API call \return the status returned by the API call
*/ */
SWITCH_DECLARE(switch_status) switch_api_execute(char *cmd, char *arg, char *retbuf, size_t len); SWITCH_DECLARE(switch_status) switch_api_execute(char *cmd, char *arg, char *retbuf, switch_size_t len);
/* Prototypes of module interface functions */ /* Prototypes of module interface functions */

View File

@ -197,7 +197,7 @@ struct switch_timer {
/*! time interval expressed in milliseconds */ /*! time interval expressed in milliseconds */
int interval; int interval;
/*! flags to control behaviour */ /*! flags to control behaviour */
unsigned int flags; uint32_t flags;
/*! sample count to increment by on each cycle */ /*! sample count to increment by on each cycle */
unsigned int samples; unsigned int samples;
/*! current sample count based on samples parameter */ /*! current sample count based on samples parameter */
@ -241,9 +241,9 @@ struct switch_file_interface {
/*! function to close the file */ /*! function to close the file */
switch_status (*file_close)(switch_file_handle *); switch_status (*file_close)(switch_file_handle *);
/*! function to read from the file */ /*! function to read from the file */
switch_status (*file_read)(switch_file_handle *, void *data, size_t *len); switch_status (*file_read)(switch_file_handle *, void *data, switch_size_t *len);
/*! function to write from the file */ /*! function to write from the file */
switch_status (*file_write)(switch_file_handle *, void *data, size_t *len); switch_status (*file_write)(switch_file_handle *, void *data, switch_size_t *len);
/*! function to seek to a certian position in the file */ /*! function to seek to a certian position in the file */
switch_status (*file_seek)(switch_file_handle *, unsigned int *cur_pos, int64_t samples, int whence); switch_status (*file_seek)(switch_file_handle *, unsigned int *cur_pos, int64_t samples, int whence);
/*! list of supported file extensions */ /*! list of supported file extensions */
@ -256,7 +256,7 @@ struct switch_file_handle {
/*! the interface of the module that implemented the current file type */ /*! the interface of the module that implemented the current file type */
const struct switch_file_interface *file_interface; const struct switch_file_interface *file_interface;
/*! flags to control behaviour */ /*! flags to control behaviour */
unsigned int flags; uint32_t flags;
/*! a file descriptor if neceessary */ /*! a file descriptor if neceessary */
switch_file_t *fd; switch_file_t *fd;
/*! samples position of the handle */ /*! samples position of the handle */
@ -304,8 +304,8 @@ struct switch_speech_interface {
/*! function to read audio from the TTS*/ /*! function to read audio from the TTS*/
switch_status (*speech_read_tts)(switch_speech_handle *sh, switch_status (*speech_read_tts)(switch_speech_handle *sh,
void *data, void *data,
size_t *datalen, switch_size_t *datalen,
size_t *rate, switch_size_t *rate,
switch_speech_flag *flags); switch_speech_flag *flags);
const struct switch_speech_interface *next; const struct switch_speech_interface *next;
@ -317,7 +317,7 @@ struct switch_speech_handle {
/*! the interface of the module that implemented the current speech interface */ /*! the interface of the module that implemented the current speech interface */
const struct switch_speech_interface *speech_interface; const struct switch_speech_interface *speech_interface;
/*! flags to control behaviour */ /*! flags to control behaviour */
unsigned int flags; uint32_t flags;
/*! the handle's memory pool */ /*! the handle's memory pool */
switch_memory_pool *memory_pool; switch_memory_pool *memory_pool;
@ -350,7 +350,7 @@ struct switch_directory_handle {
/*! the interface of the module that implemented the current directory interface */ /*! the interface of the module that implemented the current directory interface */
const struct switch_directory_interface *directory_interface; const struct switch_directory_interface *directory_interface;
/*! flags to control behaviour */ /*! flags to control behaviour */
unsigned int flags; uint32_t flags;
/*! the handle's memory pool */ /*! the handle's memory pool */
switch_memory_pool *memory_pool; switch_memory_pool *memory_pool;
@ -405,7 +405,7 @@ struct switch_codec {
/*! codec settings for this handle */ /*! codec settings for this handle */
struct switch_codec_settings codec_settings; struct switch_codec_settings codec_settings;
/*! flags to modify behaviour */ /*! flags to modify behaviour */
switch_codec_flag flags; uint32_t flags;
/*! the handle's memory pool*/ /*! the handle's memory pool*/
switch_memory_pool *memory_pool; switch_memory_pool *memory_pool;
/*! private data for the codec module to store handle specific info */ /*! private data for the codec module to store handle specific info */
@ -423,7 +423,7 @@ struct switch_codec_implementation {
/*! number of samples that denote one frame */ /*! number of samples that denote one frame */
int samples_per_frame; int samples_per_frame;
/*! number of bytes that denote one frame decompressed */ /*! number of bytes that denote one frame decompressed */
size_t bytes_per_frame; switch_size_t bytes_per_frame;
/*! number of bytes that denote one frame compressed */ /*! number of bytes that denote one frame compressed */
int encoded_bytes_per_frame; int encoded_bytes_per_frame;
/*! number of channels represented */ /*! number of channels represented */
@ -433,25 +433,25 @@ struct switch_codec_implementation {
/*! max number of frames to send in one network packet */ /*! max number of frames to send in one network packet */
int max_frames_per_packet; int max_frames_per_packet;
/*! function to initialize a codec handle using this implementation */ /*! function to initialize a codec handle using this implementation */
switch_status (*init)(switch_codec *, switch_codec_flag, const switch_codec_settings *codec_settings); switch_status (*init)(switch_codec *, uint32_t, const switch_codec_settings *codec_settings);
/*! function to encode raw data into encoded data */ /*! function to encode raw data into encoded data */
switch_status (*encode)(switch_codec *codec, switch_status (*encode)(switch_codec *codec,
switch_codec *other_codec, switch_codec *other_codec,
void *decoded_data, void *decoded_data,
size_t decoded_data_len, switch_size_t decoded_data_len,
int decoded_rate, int decoded_rate,
void *encoded_data, void *encoded_data,
size_t *encoded_data_len, switch_size_t *encoded_data_len,
int *encoded_rate, int *encoded_rate,
unsigned int *flag); unsigned int *flag);
/*! function to decode encoded data into raw data */ /*! function to decode encoded data into raw data */
switch_status (*decode)(switch_codec *codec, switch_status (*decode)(switch_codec *codec,
switch_codec *other_codec, switch_codec *other_codec,
void *encoded_data, void *encoded_data,
size_t encoded_data_len, switch_size_t encoded_data_len,
int encoded_rate, int encoded_rate,
void *decoded_data, void *decoded_data,
size_t *decoded_data_len, switch_size_t *decoded_data_len,
int *decoded_rate, int *decoded_rate,
unsigned int *flag); unsigned int *flag);
/*! deinitalize a codec handle using this implementation */ /*! deinitalize a codec handle using this implementation */

View File

@ -1,114 +0,0 @@
/*
* FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
* Copyright (C) 2005/2006, Anthony Minessale II <anthmct@yahoo.com>
*
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
*
* The Initial Developer of the Original Code is
* Anthony Minessale II <anthmct@yahoo.com>
* Portions created by the Initial Developer are Copyright (C)
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* Anthony Minessale II <anthmct@yahoo.com>
*
*
* switch_mutex.h -- Mutex Locking
*
*/
/*! \file switch_mutex.h
\brief Mutex Locking
*/
#ifndef SWITCH_MUTEX_H
#define SWITCH_MUTEX_H
#ifdef __cplusplus
extern "C" {
#endif
#include <switch.h>
/**
* @defgroup switch_thread_mutex Thread Mutex Routines
* @ingroup switch_apr
* @{
*/
/** Opaque thread-local mutex structure */
typedef apr_thread_mutex_t switch_mutex_t;
/** Lock Flags */
typedef enum {
SWITCH_MUTEX_DEFAULT = APR_THREAD_MUTEX_DEFAULT /**< platform-optimal lock behavior */,
SWITCH_MUTEX_NESTED = APR_THREAD_MUTEX_NESTED /**< enable nested (recursive) locks */,
SWITCH_MUTEX_UNNESTED = APR_THREAD_MUTEX_UNNESTED /**< disable nested locks */
} switch_lock_flag;
/**
* Create and initialize a mutex that can be used to synchronize threads.
* @param lock the memory address where the newly created mutex will be
* stored.
* @param flags Or'ed value of:
* <PRE>
* SWITCH_THREAD_MUTEX_DEFAULT platform-optimal lock behavior.
* SWITCH_THREAD_MUTEX_NESTED enable nested (recursive) locks.
* SWITCH_THREAD_MUTEX_UNNESTED disable nested locks (non-recursive).
* </PRE>
* @param pool the pool from which to allocate the mutex.
* @warning Be cautious in using SWITCH_THREAD_MUTEX_DEFAULT. While this is the
* most optimial mutex based on a given platform's performance charateristics,
* it will behave as either a nested or an unnested lock.
*/
SWITCH_DECLARE(switch_status) switch_mutex_init(switch_mutex_t **lock,
switch_lock_flag flags,
switch_memory_pool *pool);
/**
* Destroy the mutex and free the memory associated with the lock.
* @param lock the mutex to destroy.
*/
SWITCH_DECLARE(switch_status) switch_mutex_destroy(switch_mutex_t *lock);
/**
* Acquire the lock for the given mutex. If the mutex is already locked,
* the current thread will be put to sleep until the lock becomes available.
* @param lock the mutex on which to acquire the lock.
*/
SWITCH_DECLARE(switch_status) switch_mutex_lock(switch_mutex_t *lock);
/**
* Release the lock for the given mutex.
* @param lock the mutex from which to release the lock.
*/
SWITCH_DECLARE(switch_status) switch_mutex_unlock(switch_mutex_t *lock);
/**
* Attempt to acquire the lock for the given mutex. If the mutex has already
* been acquired, the call returns immediately with APR_EBUSY. Note: it
* is important that the APR_STATUS_IS_EBUSY(s) macro be used to determine
* if the return value was APR_EBUSY, for portability reasons.
* @param lock the mutex on which to attempt the lock acquiring.
*/
SWITCH_DECLARE(switch_status) switch_mutex_trylock(switch_mutex_t *lock);
/** @} */
#ifdef __cplusplus
}
#endif
#endif

View File

@ -38,6 +38,10 @@
extern "C" { extern "C" {
#endif #endif
#ifdef __ICC
#pragma warning (disable:810 869 981 279 1469)
#endif
#ifdef _MSC_VER #ifdef _MSC_VER
#ifndef FREESWITCHCORE_EXPORTS #ifndef FREESWITCHCORE_EXPORTS

View File

@ -63,13 +63,13 @@ struct switch_audio_resampler {
/*! the size of the from buffer used */ /*! the size of the from buffer used */
int from_len; int from_len;
/*! the total size of the from buffer */ /*! the total size of the from buffer */
size_t from_size; switch_size_t from_size;
/*! a pointer to store a float buffer for resampled data */ /*! a pointer to store a float buffer for resampled data */
float *to; float *to;
/*! the size of the to buffer used */ /*! the size of the to buffer used */
int to_len; int to_len;
/*! the total size of the to buffer */ /*! the total size of the to buffer */
size_t to_size; switch_size_t to_size;
}; };
/*! /*!
@ -84,9 +84,9 @@ struct switch_audio_resampler {
*/ */
SWITCH_DECLARE(switch_status) switch_resample_create(switch_audio_resampler **new_resampler, SWITCH_DECLARE(switch_status) switch_resample_create(switch_audio_resampler **new_resampler,
int from_rate, int from_rate,
size_t from_size, switch_size_t from_size,
int to_rate, int to_rate,
size_t to_size, switch_size_t to_size,
switch_memory_pool *pool); switch_memory_pool *pool);
/*! /*!
@ -114,7 +114,7 @@ SWITCH_DECLARE(int) switch_resample_process(switch_audio_resampler *resampler, f
\param len the length of the buffers \param len the length of the buffers
\return the size of the converted buffer \return the size of the converted buffer
*/ */
SWITCH_DECLARE(size_t) switch_float_to_short(float *f, short *s, size_t len); SWITCH_DECLARE(switch_size_t) switch_float_to_short(float *f, short *s, switch_size_t len);
/*! /*!
\brief Convert an array of chars to an array of floats \brief Convert an array of chars to an array of floats

View File

@ -36,6 +36,9 @@
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#ifdef _FORMATBUG
}
#endif
#endif #endif
#include <switch.h> #include <switch.h>
@ -426,7 +429,6 @@ typedef enum {
SWITCH_EVENT_ALL SWITCH_EVENT_ALL
} switch_event_t; } switch_event_t;
typedef struct switch_core_session_message switch_core_session_message; typedef struct switch_core_session_message switch_core_session_message;
typedef struct switch_audio_resampler switch_audio_resampler; typedef struct switch_audio_resampler switch_audio_resampler;
typedef struct switch_event_header switch_event_header; typedef struct switch_event_header switch_event_header;
@ -486,7 +488,7 @@ typedef switch_status (*switch_kill_channel_hook)(switch_core_session *, int);
typedef switch_status (*switch_waitfor_read_hook)(switch_core_session *, int, int); typedef switch_status (*switch_waitfor_read_hook)(switch_core_session *, int, int);
typedef switch_status (*switch_waitfor_write_hook)(switch_core_session *, int, int); typedef switch_status (*switch_waitfor_write_hook)(switch_core_session *, int, int);
typedef switch_status (*switch_send_dtmf_hook)(switch_core_session *, char *); typedef switch_status (*switch_send_dtmf_hook)(switch_core_session *, char *);
typedef switch_status (*switch_api_function)(char *in, char *out, size_t outlen); typedef switch_status (*switch_api_function)(char *in, char *out, switch_size_t outlen);
typedef switch_status (*switch_dtmf_callback_function)(switch_core_session *session, char *dtmf, void *buf, unsigned int buflen); typedef switch_status (*switch_dtmf_callback_function)(switch_core_session *session, char *dtmf, void *buf, unsigned int buflen);
typedef int (*switch_core_db_callback_func)(void *pArg, int argc, char **argv, char **columnNames); typedef int (*switch_core_db_callback_func)(void *pArg, int argc, char **argv, char **columnNames);

View File

@ -103,7 +103,7 @@ static void tts_function(switch_core_session *session, char *data)
return; return;
} }
if ((argc = switch_separate_string(mydata, ':', argv, sizeof(argv) / sizeof(argv[0]))) > 1) { if ((argc = switch_separate_string(mydata, ':', argv, sizeof(argv) / sizeof(argv[0]))) > 1 && argc) {
tts_name = argv[0]; tts_name = argv[0];
voice_name = argv[1]; voice_name = argv[1];
text = argv[2]; text = argv[2];

View File

@ -29,6 +29,10 @@
* mod_cepstral.c -- Cepstral Interface * mod_cepstral.c -- Cepstral Interface
* *
*/ */
#ifdef __ICC
#pragma warning (disable:188)
#endif
#include <swift.h> #include <swift.h>
#include <switch.h> #include <switch.h>
@ -56,7 +60,6 @@ static swift_result_t write_audio(swift_event *event, swift_event_t type, void *
swift_event_t rv = SWIFT_SUCCESS; swift_event_t rv = SWIFT_SUCCESS;
void *buf = NULL; void *buf = NULL;
int len = 0; int len = 0;
int wrote;
cepstral = udata; cepstral = udata;
assert(cepstral != NULL); assert(cepstral != NULL);
@ -64,7 +67,7 @@ static swift_result_t write_audio(swift_event *event, swift_event_t type, void *
/* Only proceed when we have success */ /* Only proceed when we have success */
if (!SWIFT_FAILED((rv = swift_event_get_audio(event, &buf, &len)))) { if (!SWIFT_FAILED((rv = swift_event_get_audio(event, &buf, &len)))) {
switch_mutex_lock(cepstral->audio_lock); switch_mutex_lock(cepstral->audio_lock);
if ((wrote=switch_buffer_write(cepstral->audio_buffer, buf, len)) <= 0) { if (switch_buffer_write(cepstral->audio_buffer, buf, len) <= 0) {
rv = SWIFT_UNKNOWN_ERROR; rv = SWIFT_UNKNOWN_ERROR;
} }
switch_mutex_unlock(cepstral->audio_lock); switch_mutex_unlock(cepstral->audio_lock);
@ -242,7 +245,7 @@ static switch_status cepstral_speech_read_tts(switch_speech_handle *sh,
return status; return status;
} }
const switch_speech_interface cepstral_speech_interface = { static const switch_speech_interface cepstral_speech_interface = {
/*.interface_name*/ "cepstral", /*.interface_name*/ "cepstral",
/*.speech_open*/ cepstral_speech_open, /*.speech_open*/ cepstral_speech_open,
/*.speech_close*/ cepstral_speech_close, /*.speech_close*/ cepstral_speech_close,
@ -253,7 +256,7 @@ const switch_speech_interface cepstral_speech_interface = {
}; };
const switch_loadable_module_interface cepstral_module_interface = { static const switch_loadable_module_interface cepstral_module_interface = {
/*.module_name */ modname, /*.module_name */ modname,
/*.endpoint_interface */ NULL, /*.endpoint_interface */ NULL,
/*.timer_interface */ NULL, /*.timer_interface */ NULL,

View File

@ -39,6 +39,9 @@
*/ */
#include "g711.h" #include "g711.h"
#ifdef __ICC
#pragma warning (disable:810 869 1418)
#endif
/* /*
* g711.c * g711.c

View File

@ -187,6 +187,7 @@ static switch_status switch_g711a_destroy(switch_codec *codec)
/* Registration */ /* Registration */
#if 0
static const switch_codec_implementation g711u_8k_60ms_implementation = { static const switch_codec_implementation g711u_8k_60ms_implementation = {
/*.samples_per_second */ 8000, /*.samples_per_second */ 8000,
@ -204,6 +205,7 @@ static const switch_codec_implementation g711u_8k_60ms_implementation = {
/*.destroy */ switch_g711u_destroy /*.destroy */ switch_g711u_destroy
}; };
static const switch_codec_implementation g711u_8k_30ms_implementation = { static const switch_codec_implementation g711u_8k_30ms_implementation = {
/*.samples_per_second */ 8000, /*.samples_per_second */ 8000,
/*.bits_per_second */ 96000, /*.bits_per_second */ 96000,
@ -220,7 +222,7 @@ static const switch_codec_implementation g711u_8k_30ms_implementation = {
/*.destroy */ switch_g711u_destroy, /*.destroy */ switch_g711u_destroy,
/*.next */ &g711u_8k_60ms_implementation /*.next */ &g711u_8k_60ms_implementation
}; };
#endif
static const switch_codec_implementation g711u_16k_implementation = { static const switch_codec_implementation g711u_16k_implementation = {
/*.samples_per_second */ 16000, /*.samples_per_second */ 16000,

View File

@ -121,11 +121,11 @@ static switch_status switch_gsm_decode(switch_codec *codec, switch_codec *other_
if (new_len <= *decoded_data_len) { if (new_len <= *decoded_data_len) {
*decoded_data_len = new_len; *decoded_data_len = new_len;
} else { } else {
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "buffer overflow!!! %d %d\n", new_len, *decoded_data_len); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "buffer overflow!!! %u %u\n", new_len, *decoded_data_len);
return SWITCH_STATUS_FALSE; return SWITCH_STATUS_FALSE;
} }
} else { } else {
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "yo this frame is an odd size [%d]\n", encoded_data_len); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "yo this frame is an odd size [%u]\n", encoded_data_len);
} }
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
} }

View File

@ -35,7 +35,7 @@
static const char modname[] = "mod_speexcodec"; static const char modname[] = "mod_speexcodec";
const struct switch_codec_settings default_codec_settings = { static const struct switch_codec_settings default_codec_settings = {
/*.quality */ 5, /*.quality */ 5,
/*.complexity */ 5, /*.complexity */ 5,
/*.enhancement */ 1, /*.enhancement */ 1,

View File

@ -38,7 +38,7 @@
static const char modname[] = "mod_dialplan_demo"; static const char modname[] = "mod_dialplan_demo";
switch_caller_extension *demo_dialplan_hunt(switch_core_session *session) static switch_caller_extension *demo_dialplan_hunt(switch_core_session *session)
{ {
switch_caller_profile *caller_profile; switch_caller_profile *caller_profile;
switch_caller_extension *extension = NULL; switch_caller_extension *extension = NULL;

View File

@ -82,7 +82,7 @@ static void load_config(void)
switch_config_close_file(&cfg); switch_config_close_file(&cfg);
} }
switch_caller_extension *directory_dialplan_hunt(switch_core_session *session) static switch_caller_extension *directory_dialplan_hunt(switch_core_session *session)
{ {
switch_caller_profile *caller_profile; switch_caller_profile *caller_profile;
switch_caller_extension *extension = NULL; switch_caller_extension *extension = NULL;

View File

@ -42,7 +42,7 @@ static const char modname[] = "mod_pcre";
re = NULL;\ re = NULL;\
} }
switch_caller_extension *dialplan_hunt(switch_core_session *session) static switch_caller_extension *dialplan_hunt(switch_core_session *session)
{ {
switch_caller_profile *caller_profile; switch_caller_profile *caller_profile;
switch_caller_extension *extension = NULL; switch_caller_extension *extension = NULL;

View File

@ -140,7 +140,7 @@ static switch_status mod_ldap_next(switch_directory_handle *dh)
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
} }
switch_status mod_ldap_next_pair(switch_directory_handle *dh, char **var, char **val) static switch_status mod_ldap_next_pair(switch_directory_handle *dh, char **var, char **val)
{ {
struct ldap_context *context; struct ldap_context *context;

View File

@ -282,8 +282,7 @@ static switch_status exosip_on_init(switch_core_session *session)
sdp_message_m_media_add(tech_pvt->local_sdp, "audio", port, NULL, "RTP/AVP"); sdp_message_m_media_add(tech_pvt->local_sdp, "audio", port, NULL, "RTP/AVP");
/* Add in every codec we support on this outbound call */ /* Add in every codec we support on this outbound call */
if (globals.codec_string) { if (globals.codec_string) {
num_codecs = switch_loadable_module_get_codecs_sorted(switch_core_session_get_pool(tech_pvt->session), num_codecs = switch_loadable_module_get_codecs_sorted(codecs,
codecs,
SWITCH_MAX_CODECS, SWITCH_MAX_CODECS,
globals.codec_order, globals.codec_order,
globals.codec_order_last); globals.codec_order_last);
@ -301,7 +300,7 @@ static switch_status exosip_on_init(switch_core_session *session)
for (i = 0; i < num_codecs; i++) { for (i = 0; i < num_codecs; i++) {
int x = 0; int x = 0;
snprintf(tmp, sizeof(tmp), "%i", codecs[i]->ianacode); snprintf(tmp, sizeof(tmp), "%u", codecs[i]->ianacode);
sdp_message_m_payload_add(tech_pvt->local_sdp, 0, osip_strdup(tmp)); sdp_message_m_payload_add(tech_pvt->local_sdp, 0, osip_strdup(tmp));
for (imp = codecs[i]->implementations; imp; imp = imp->next) { for (imp = codecs[i]->implementations; imp; imp = imp->next) {
/* Add to SDP config */ /* Add to SDP config */
@ -309,8 +308,7 @@ static switch_status exosip_on_init(switch_core_session *session)
imp->samples_per_second, x++); imp->samples_per_second, x++);
/* Add to SDP message */ /* Add to SDP message */
snprintf(tmp, sizeof(tmp), "%i %s/%i", codecs[i]->ianacode, codecs[i]->iananame, snprintf(tmp, sizeof(tmp), "%u %s/%d", codecs[i]->ianacode, codecs[i]->iananame, imp->samples_per_second);
imp->samples_per_second);
sdp_message_a_attribute_add(tech_pvt->local_sdp, 0, "rtpmap", osip_strdup(tmp)); sdp_message_a_attribute_add(tech_pvt->local_sdp, 0, "rtpmap", osip_strdup(tmp));
memset(tmp, 0, sizeof(tmp)); memset(tmp, 0, sizeof(tmp));
} }
@ -464,7 +462,7 @@ static void activate_rtp(struct private_object *tech_pvt)
bw *= 8; bw *= 8;
} }
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Activating RTP %s:%d->%s:%d codec: %d ms: %d\n", switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Activating RTP %s:%d->%s:%d codec: %u ms: %d\n",
tech_pvt->local_sdp_audio_ip, tech_pvt->local_sdp_audio_ip,
tech_pvt->local_sdp_audio_port, tech_pvt->local_sdp_audio_port,
tech_pvt->remote_sdp_audio_ip, tech_pvt->remote_sdp_audio_ip,
@ -684,7 +682,7 @@ static switch_status exosip_write_frame(switch_core_session *session, switch_fra
struct private_object *tech_pvt; struct private_object *tech_pvt;
switch_channel *channel = NULL; switch_channel *channel = NULL;
switch_status status = SWITCH_STATUS_SUCCESS; switch_status status = SWITCH_STATUS_SUCCESS;
int bytes = 0, samples = 0, ms = 0, frames = 0; int bytes = 0, samples = 0, frames = 0;
channel = switch_core_session_get_channel(session); channel = switch_core_session_get_channel(session);
assert(channel != NULL); assert(channel != NULL);
@ -712,7 +710,6 @@ static switch_status exosip_write_frame(switch_core_session *session, switch_fra
bytes = tech_pvt->read_codec.implementation->encoded_bytes_per_frame; bytes = tech_pvt->read_codec.implementation->encoded_bytes_per_frame;
frames = ((int) frame->datalen / bytes); frames = ((int) frame->datalen / bytes);
samples = frames * tech_pvt->read_codec.implementation->samples_per_frame; samples = frames * tech_pvt->read_codec.implementation->samples_per_frame;
ms = frames * tech_pvt->read_codec.implementation->microseconds_per_frame / 1000;
} else { } else {
assert(0); assert(0);
} }
@ -739,8 +736,12 @@ static switch_status exosip_write_frame(switch_core_session *session, switch_fra
for (x = 0; x < loops; x++) { for (x = 0; x < loops; x++) {
jrtp4c_write_payload(tech_pvt->rtp_session, tech_pvt->out_digit_packet, 4, 101, ts, tech_pvt->out_digit_seq); jrtp4c_write_payload(tech_pvt->rtp_session, tech_pvt->out_digit_packet, 4, 101, ts, tech_pvt->out_digit_seq);
printf("Send %s packet for [%c] ts=%d sofar=%d dur=%d\n", loops == 1 ? "middle" : "end", tech_pvt->out_digit, ts, printf("Send %s packet for [%c] ts=%d sofar=%u dur=%d\n",
tech_pvt->out_digit_sofar, duration); loops == 1 ? "middle" : "end",
tech_pvt->out_digit,
ts,
tech_pvt->out_digit_sofar,
duration);
} }
} }
@ -762,7 +763,7 @@ static switch_status exosip_write_frame(switch_core_session *session, switch_fra
tech_pvt->out_digit_seq++; tech_pvt->out_digit_seq++;
for (x = 0; x < 3; x++) { for (x = 0; x < 3; x++) {
jrtp4c_write_payload(tech_pvt->rtp_session, tech_pvt->out_digit_packet, 4, 101, ts, tech_pvt->out_digit_seq); jrtp4c_write_payload(tech_pvt->rtp_session, tech_pvt->out_digit_packet, 4, 101, ts, tech_pvt->out_digit_seq);
printf("Send start packet for [%c] ts=%d sofar=%d dur=%d\n", tech_pvt->out_digit, ts, printf("Send start packet for [%c] ts=%d sofar=%u dur=%d\n", tech_pvt->out_digit, ts,
tech_pvt->out_digit_sofar, 0); tech_pvt->out_digit_sofar, 0);
} }
@ -1111,8 +1112,7 @@ static switch_status exosip_create_call(eXosip_event_t * event)
if (globals.codec_string) { if (globals.codec_string) {
num_codecs = switch_loadable_module_get_codecs_sorted(switch_core_session_get_pool(tech_pvt->session), num_codecs = switch_loadable_module_get_codecs_sorted(codecs,
codecs,
SWITCH_MAX_CODECS, SWITCH_MAX_CODECS,
globals.codec_order, globals.codec_order,
globals.codec_order_last); globals.codec_order_last);
@ -1245,7 +1245,7 @@ static switch_status exosip_create_call(eXosip_event_t * event)
} }
return 0; return SWITCH_STATUS_SUCCESS;
} }
@ -1624,7 +1624,7 @@ SWITCH_MOD_DECLARE(switch_status) switch_module_runtime(void)
config_exosip(0); config_exosip(0);
if (globals.debug) { if (globals.debug) {
osip_trace_initialize(globals.debug, stdout); osip_trace_initialize((osip_trace_level_t) globals.debug, stdout);
} }
if (eXosip_init()) { if (eXosip_init()) {

View File

@ -17,6 +17,10 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#ifdef __ICC
#pragma warning (disable:810 869 1418 981)
#endif
#include <stdlib.h> #include <stdlib.h>
#include <osipparser2/osip_port.h> #include <osipparser2/osip_port.h>

View File

@ -215,8 +215,7 @@ static switch_status iax_set_codec(struct private_object *tech_pvt, struct iax_s
int x, srate = 8000; int x, srate = 8000;
if (globals.codec_string) { if (globals.codec_string) {
if ((num_codecs = switch_loadable_module_get_codecs_sorted(switch_core_session_get_pool(tech_pvt->session), if ((num_codecs = switch_loadable_module_get_codecs_sorted(codecs,
codecs,
SWITCH_MAX_CODECS, SWITCH_MAX_CODECS,
globals.codec_order, globals.codec_order,
globals.codec_order_last)) <= 0) { globals.codec_order_last)) <= 0) {
@ -863,9 +862,7 @@ static switch_status load_config(void)
SWITCH_MOD_DECLARE(switch_status) switch_module_runtime(void) SWITCH_MOD_DECLARE(switch_status) switch_module_runtime(void)
{ {
int res; //int refresh;
int netfd;
int refresh;
struct iax_event *iaxevent = NULL; struct iax_event *iaxevent = NULL;
switch_event *s_event; switch_event *s_event;
if (load_config() != SWITCH_STATUS_SUCCESS) { if (load_config() != SWITCH_STATUS_SUCCESS) {
@ -875,14 +872,14 @@ SWITCH_MOD_DECLARE(switch_status) switch_module_runtime(void)
if (globals.debug) { if (globals.debug) {
iax_enable_debug(); iax_enable_debug();
} }
if (((res = iax_init(globals.port) < 0)) != 0) { if (iax_init(globals.port) < 0) {
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Error Binding Port!\n"); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Error Binding Port!\n");
return SWITCH_STATUS_TERM; return SWITCH_STATUS_TERM;
} }
iax_set_error(iax_err_cb); iax_set_error(iax_err_cb);
iax_set_output(iax_out_cb); iax_set_output(iax_out_cb);
netfd = iax_get_fd(); //netfd = iax_get_fd();
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "IAX Ready Port %d\n", globals.port); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "IAX Ready Port %d\n", globals.port);
@ -912,8 +909,8 @@ SWITCH_MOD_DECLARE(switch_status) switch_module_runtime(void)
switch (iaxevent->etype) { switch (iaxevent->etype) {
case IAX_EVENT_REGACK: case IAX_EVENT_REGACK:
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Registration completed successfully.\n"); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Registration completed successfully.\n");
if (iaxevent->ies.refresh) //if (iaxevent->ies.refresh)
refresh = iaxevent->ies.refresh; //refresh = iaxevent->ies.refresh;
break; break;
case IAX_EVENT_REGREJ: case IAX_EVENT_REGREJ:
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Registration failed.\n"); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Registration failed.\n");
@ -927,7 +924,7 @@ SWITCH_MOD_DECLARE(switch_status) switch_module_runtime(void)
if (iax_set_codec(tech_pvt, iaxevent->session, &format, &cap, &iaxevent->ies.samprate, IAX_SET) != if (iax_set_codec(tech_pvt, iaxevent->session, &format, &cap, &iaxevent->ies.samprate, IAX_SET) !=
SWITCH_STATUS_SUCCESS) { SWITCH_STATUS_SUCCESS) {
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "WTF? %d %d\n", iaxevent->ies.format, switch_console_printf(SWITCH_CHANNEL_CONSOLE, "WTF? %u %u\n", iaxevent->ies.format,
iaxevent->ies.capability); iaxevent->ies.capability);
} }
} }
@ -961,7 +958,7 @@ SWITCH_MOD_DECLARE(switch_status) switch_module_runtime(void)
case IAX_EVENT_CONNECT: case IAX_EVENT_CONNECT:
// incoming call detected // incoming call detected
switch_console_printf(SWITCH_CHANNEL_CONSOLE, switch_console_printf(SWITCH_CHANNEL_CONSOLE,
"Incoming call connected %s, %s, %s %d/%d\n", "Incoming call connected %s, %s, %s %u/%u\n",
iaxevent->ies.called_number, iaxevent->ies.called_number,
iaxevent->ies.calling_number, iaxevent->ies.calling_number,
iaxevent->ies.calling_name, iaxevent->ies.format, iaxevent->ies.capability); iaxevent->ies.calling_name, iaxevent->ies.format, iaxevent->ies.capability);

View File

@ -38,6 +38,10 @@
* PLB021214 - check for valid stream in CloseAudioStream() to prevent hang. * PLB021214 - check for valid stream in CloseAudioStream() to prevent hang.
* add timeOutMSec to CloseAudioStream() to prevent hang. * add timeOutMSec to CloseAudioStream() to prevent hang.
*/ */
#ifdef __ICC
#pragma warning (disable:810 869 981 279 1469)
#endif
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <math.h> #include <math.h>

View File

@ -33,6 +33,9 @@
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* *
*/ */
#ifdef __ICC
#pragma warning (disable:810 869 981 279 1469)
#endif
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <math.h> #include <math.h>

View File

@ -191,7 +191,7 @@ static int str2dp(char *dp)
return PRI_UNKNOWN; return PRI_UNKNOWN;
} }
static const switch_endpoint_interface wanpipe_endpoint_interface;
static void set_global_dialplan(char *dialplan); static void set_global_dialplan(char *dialplan);
static int str2node(char *node); static int str2node(char *node);
@ -395,6 +395,307 @@ static switch_status wanpipe_on_transmit(switch_core_session *session)
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
} }
static switch_status wanpipe_answer_channel(switch_core_session *session)
{
struct private_object *tech_pvt;
switch_channel *channel = NULL;
channel = switch_core_session_get_channel(session);
assert(channel != NULL);
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
if (switch_test_flag(tech_pvt, TFLAG_INBOUND) && !switch_test_flag(tech_pvt, TFLAG_NOSIG)) {
pri_answer(tech_pvt->spri->pri, tech_pvt->call, 0, 1);
}
return SWITCH_STATUS_SUCCESS;
}
static switch_status wanpipe_read_frame(switch_core_session *session, switch_frame **frame, int timeout,
switch_io_flag flags, int stream_id)
{
struct private_object *tech_pvt;
switch_channel *channel = NULL;
uint8_t *bp;
int bytes = 0, res = 0;
char digit_str[80];
channel = switch_core_session_get_channel(session);
assert(channel != NULL);
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
if (switch_test_flag(tech_pvt, TFLAG_BYE) || tech_pvt->socket < 0) {
return SWITCH_STATUS_GENERR;
}
bp = tech_pvt->databuf;
*frame = NULL;
memset(tech_pvt->databuf, 0, sizeof(tech_pvt->databuf));
while (bytes < globals.mtu) {
if (switch_test_flag(tech_pvt, TFLAG_BYE) || tech_pvt->socket < 0) {
return SWITCH_STATUS_GENERR;
}
if ((res = sangoma_socket_waitfor(tech_pvt->socket, timeout, POLLIN | POLLERR)) < 0) {
return SWITCH_STATUS_GENERR;
} else if (res == 0) {
tech_pvt->read_frame.datalen = 0;
return SWITCH_STATUS_SUCCESS;
}
if ((res = sangoma_readmsg_socket(tech_pvt->socket,
&tech_pvt->hdrframe,
sizeof(tech_pvt->hdrframe), bp, sizeof(tech_pvt->databuf) - bytes, 0)) < 0) {
if (errno == EBUSY) {
continue;
} else {
return SWITCH_STATUS_GENERR;
}
}
bytes += res;
bp += bytes;
}
if (switch_test_flag(tech_pvt, TFLAG_BYE) || tech_pvt->socket < 0) {
return SWITCH_STATUS_GENERR;
}
tech_pvt->read_frame.datalen = bytes;
tech_pvt->read_frame.samples = bytes / 2;
res = teletone_dtmf_detect (&tech_pvt->dtmf_detect, tech_pvt->read_frame.data, tech_pvt->read_frame.samples);
res = teletone_dtmf_get(&tech_pvt->dtmf_detect, digit_str, sizeof(digit_str));
if(digit_str[0]) {
switch_channel_queue_dtmf(channel, digit_str);
if (globals.debug) {
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "DTMF DETECTED: [%s]\n", digit_str);
}
if (globals.supress_dtmf_tone) {
memset(tech_pvt->read_frame.data, 0, tech_pvt->read_frame.datalen);
}
}
if (tech_pvt->skip_read_frames > 0) {
memset(tech_pvt->read_frame.data, 0, tech_pvt->read_frame.datalen);
tech_pvt->skip_read_frames--;
}
#ifdef DOTRACE
write(tech_pvt->fd2, tech_pvt->read_frame.data, (int) tech_pvt->read_frame.datalen);
#endif
//printf("read %d\n", tech_pvt->read_frame.datalen);
*frame = &tech_pvt->read_frame;
return SWITCH_STATUS_SUCCESS;
}
static switch_status wanpipe_write_frame(switch_core_session *session, switch_frame *frame, int timeout,
switch_io_flag flags, int stream_id)
{
struct private_object *tech_pvt;
switch_channel *channel = NULL;
int result = 0;
int bytes = frame->datalen;
uint8_t *bp = frame->data;
unsigned char dtmf[1024];
int bread, bwrote = 0;
switch_status status = SWITCH_STATUS_SUCCESS;
channel = switch_core_session_get_channel(session);
assert(channel != NULL);
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
while (tech_pvt->dtmf_buffer && bwrote < frame->datalen && bytes > 0 && switch_buffer_inuse(tech_pvt->dtmf_buffer) > 0) {
if (switch_test_flag(tech_pvt, TFLAG_BYE) || tech_pvt->socket < 0) {
return SWITCH_STATUS_GENERR;
}
if ((bread = switch_buffer_read(tech_pvt->dtmf_buffer, dtmf, globals.mtu)) < globals.mtu) {
while (bread < globals.mtu) {
dtmf[bread++] = 0;
}
}
sangoma_socket_waitfor(tech_pvt->socket, -1, POLLOUT | POLLERR | POLLHUP);
#ifdef DOTRACE
write(tech_pvt->fd, dtmf, (int) bread);
#endif
result = sangoma_sendmsg_socket(tech_pvt->socket,
&tech_pvt->hdrframe, sizeof(tech_pvt->hdrframe), dtmf, bread, 0);
if (result < 0) {
switch_console_printf(SWITCH_CHANNEL_CONSOLE,
"Bad Write %d bytes returned %d (%s)!\n", bread,
result, strerror(errno));
if (errno == EBUSY) {
continue;
}
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Write Failed!\n");
status = SWITCH_STATUS_GENERR;
break;
} else {
bytes -= result;
bwrote += result;
bp += result;
result = 0;
}
}
if (switch_test_flag(tech_pvt, TFLAG_BYE) || tech_pvt->socket < 0) {
return SWITCH_STATUS_GENERR;
}
if (tech_pvt->skip_write_frames) {
tech_pvt->skip_write_frames--;
return SWITCH_STATUS_SUCCESS;
}
while (bytes > 0) {
unsigned int towrite;
if (switch_test_flag(tech_pvt, TFLAG_BYE) || tech_pvt->socket < 0) {
return SWITCH_STATUS_GENERR;
}
sangoma_socket_waitfor(tech_pvt->socket, -1, POLLOUT | POLLERR | POLLHUP);
#ifdef DOTRACE
write(tech_pvt->fd, bp, (int) globals.mtu);
#endif
towrite = bytes >= globals.mtu ? globals.mtu : bytes;
result = sangoma_sendmsg_socket(tech_pvt->socket,
&tech_pvt->hdrframe, sizeof(tech_pvt->hdrframe), bp, towrite, 0);
if (result < 0) {
switch_console_printf(SWITCH_CHANNEL_CONSOLE,
"Bad Write frame len %u write %d bytes returned %d (%s)!\n", frame->datalen,
globals.mtu, result, strerror(errno));
if (errno == EBUSY) {
continue;
}
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Write Failed!\n");
status = SWITCH_STATUS_GENERR;
break;
} else {
bytes -= result;
bp += result;
result = 0;
}
}
//printf("write %d %d\n", frame->datalen, status);
return status;
}
static switch_status wanpipe_send_dtmf(switch_core_session *session, char *digits)
{
struct private_object *tech_pvt;
switch_channel *channel = NULL;
switch_status status = SWITCH_STATUS_SUCCESS;
int wrote = 0;
char *cur = NULL;
channel = switch_core_session_get_channel(session);
assert(channel != NULL);
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
if (!tech_pvt->dtmf_buffer) {
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Allocate DTMF Buffer....");
if (switch_buffer_create(switch_core_session_get_pool(session), &tech_pvt->dtmf_buffer, 3192) != SWITCH_STATUS_SUCCESS) {
switch_console_printf(SWITCH_CHANNEL_CONSOLE_CLEAN, "FAILURE!\n");
return SWITCH_STATUS_FALSE;
} else {
switch_console_printf(SWITCH_CHANNEL_CONSOLE_CLEAN, "SUCCESS!\n");
}
}
for (cur = digits; *cur; cur++) {
if ((wrote = teletone_mux_tones(&tech_pvt->tone_session, &tech_pvt->tone_session.TONES[(int)*cur]))) {
switch_buffer_write(tech_pvt->dtmf_buffer, tech_pvt->tone_session.buffer, wrote * 2);
}
}
tech_pvt->skip_read_frames = 200;
return status;
}
static switch_status wanpipe_receive_message(switch_core_session *session, switch_core_session_message *msg)
{
return SWITCH_STATUS_FALSE;
}
static switch_status wanpipe_kill_channel(switch_core_session *session, int sig)
{
struct private_object *tech_pvt;
switch_channel *channel = NULL;
channel = switch_core_session_get_channel(session);
assert(channel != NULL);
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
switch_set_flag(tech_pvt, TFLAG_BYE);
switch_clear_flag(tech_pvt, TFLAG_MEDIA);
return SWITCH_STATUS_SUCCESS;
}
static const switch_io_routines wanpipe_io_routines = {
/*.outgoing_channel */ wanpipe_outgoing_channel,
/*.answer_channel */ wanpipe_answer_channel,
/*.read_frame */ wanpipe_read_frame,
/*.write_frame */ wanpipe_write_frame,
/*.kill_channel */ wanpipe_kill_channel,
/*.waitfor_read */ NULL,
/*.waitfor_read */ NULL,
/*.send_dtmf*/ wanpipe_send_dtmf,
/*.receive_message*/ wanpipe_receive_message
};
static const switch_state_handler_table wanpipe_state_handlers = {
/*.on_init */ wanpipe_on_init,
/*.on_ring */ wanpipe_on_ring,
/*.on_execute */ NULL,
/*.on_hangup */ wanpipe_on_hangup,
/*.on_loopback */ wanpipe_on_loopback,
/*.on_transmit */ wanpipe_on_transmit
};
static const switch_endpoint_interface wanpipe_endpoint_interface = {
/*.interface_name */ "wanpipe",
/*.io_routines */ &wanpipe_io_routines,
/*.state_handlers */ &wanpipe_state_handlers,
/*.private */ NULL,
/*.next */ NULL
};
static const switch_loadable_module_interface wanpipe_module_interface = {
/*.module_name */ modname,
/*.endpoint_interface */ &wanpipe_endpoint_interface,
/*.timer_interface */ NULL,
/*.dialplan_interface */ NULL,
/*.codec_interface */ NULL,
/*.application_interface */ NULL
};
static switch_status wanpipe_outgoing_channel(switch_core_session *session, switch_caller_profile *outbound_profile, static switch_status wanpipe_outgoing_channel(switch_core_session *session, switch_caller_profile *outbound_profile,
switch_core_session **new_session, switch_memory_pool *pool) switch_core_session **new_session, switch_memory_pool *pool)
{ {
@ -600,304 +901,7 @@ static switch_status wanpipe_outgoing_channel(switch_core_session *session, swit
return SWITCH_STATUS_GENERR; return SWITCH_STATUS_GENERR;
} }
static switch_status wanpipe_answer_channel(switch_core_session *session)
{
struct private_object *tech_pvt;
switch_channel *channel = NULL;
channel = switch_core_session_get_channel(session);
assert(channel != NULL);
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
if (switch_test_flag(tech_pvt, TFLAG_INBOUND) && !switch_test_flag(tech_pvt, TFLAG_NOSIG)) {
pri_answer(tech_pvt->spri->pri, tech_pvt->call, 0, 1);
}
return SWITCH_STATUS_SUCCESS;
}
static switch_status wanpipe_read_frame(switch_core_session *session, switch_frame **frame, int timeout,
switch_io_flag flags, int stream_id)
{
struct private_object *tech_pvt;
switch_channel *channel = NULL;
void *bp;
int bytes = 0, res = 0;
char digit_str[80];
channel = switch_core_session_get_channel(session);
assert(channel != NULL);
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
if (switch_test_flag(tech_pvt, TFLAG_BYE) || tech_pvt->socket < 0) {
return SWITCH_STATUS_GENERR;
}
bp = tech_pvt->databuf;
*frame = NULL;
memset(tech_pvt->databuf, 0, sizeof(tech_pvt->databuf));
while (bytes < globals.mtu) {
if (switch_test_flag(tech_pvt, TFLAG_BYE) || tech_pvt->socket < 0) {
return SWITCH_STATUS_GENERR;
}
if ((res = sangoma_socket_waitfor(tech_pvt->socket, timeout, POLLIN | POLLERR)) < 0) {
return SWITCH_STATUS_GENERR;
} else if (res == 0) {
tech_pvt->read_frame.datalen = 0;
return SWITCH_STATUS_SUCCESS;
}
if ((res = sangoma_readmsg_socket(tech_pvt->socket,
&tech_pvt->hdrframe,
sizeof(tech_pvt->hdrframe), bp, sizeof(tech_pvt->databuf) - bytes, 0)) < 0) {
if (errno == EBUSY) {
continue;
} else {
return SWITCH_STATUS_GENERR;
}
}
bytes += res;
bp += bytes;
}
if (switch_test_flag(tech_pvt, TFLAG_BYE) || tech_pvt->socket < 0) {
return SWITCH_STATUS_GENERR;
}
tech_pvt->read_frame.datalen = bytes;
tech_pvt->read_frame.samples = bytes / 2;
res = teletone_dtmf_detect (&tech_pvt->dtmf_detect, tech_pvt->read_frame.data, tech_pvt->read_frame.samples);
res = teletone_dtmf_get(&tech_pvt->dtmf_detect, digit_str, sizeof(digit_str));
if(digit_str[0]) {
switch_channel_queue_dtmf(channel, digit_str);
if (globals.debug) {
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "DTMF DETECTED: [%s]\n", digit_str);
}
if (globals.supress_dtmf_tone) {
memset(tech_pvt->read_frame.data, 0, tech_pvt->read_frame.datalen);
}
}
if (tech_pvt->skip_read_frames > 0) {
memset(tech_pvt->read_frame.data, 0, tech_pvt->read_frame.datalen);
tech_pvt->skip_read_frames--;
}
#ifdef DOTRACE
write(tech_pvt->fd2, tech_pvt->read_frame.data, (int) tech_pvt->read_frame.datalen);
#endif
//printf("read %d\n", tech_pvt->read_frame.datalen);
*frame = &tech_pvt->read_frame;
return SWITCH_STATUS_SUCCESS;
}
static switch_status wanpipe_write_frame(switch_core_session *session, switch_frame *frame, int timeout,
switch_io_flag flags, int stream_id)
{
struct private_object *tech_pvt;
switch_channel *channel = NULL;
int res = 0;
int bytes = frame->datalen;
void *bp = frame->data;
unsigned char dtmf[1024];
int inuse, bread, bwrote = 0;
switch_status status = SWITCH_STATUS_SUCCESS;
channel = switch_core_session_get_channel(session);
assert(channel != NULL);
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
while (tech_pvt->dtmf_buffer && bwrote < frame->datalen && bytes > 0 && (inuse = switch_buffer_inuse(tech_pvt->dtmf_buffer)) > 0) {
if (switch_test_flag(tech_pvt, TFLAG_BYE) || tech_pvt->socket < 0) {
return SWITCH_STATUS_GENERR;
}
if ((bread = switch_buffer_read(tech_pvt->dtmf_buffer, dtmf, globals.mtu)) < globals.mtu) {
while (bread < globals.mtu) {
dtmf[bread++] = 0;
}
}
sangoma_socket_waitfor(tech_pvt->socket, -1, POLLOUT | POLLERR | POLLHUP);
#ifdef DOTRACE
write(tech_pvt->fd, dtmf, (int) bread);
#endif
res = sangoma_sendmsg_socket(tech_pvt->socket,
&tech_pvt->hdrframe, sizeof(tech_pvt->hdrframe), dtmf, bread, 0);
if (res < 0) {
switch_console_printf(SWITCH_CHANNEL_CONSOLE,
"Bad Write %d bytes returned %d (%s)!\n", bread,
res, strerror(errno));
if (errno == EBUSY) {
continue;
}
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Write Failed!\n");
status = SWITCH_STATUS_GENERR;
break;
} else {
bytes -= res;
bwrote += res;
bp += res;
res = 0;
}
}
if (switch_test_flag(tech_pvt, TFLAG_BYE) || tech_pvt->socket < 0) {
return SWITCH_STATUS_GENERR;
}
if (tech_pvt->skip_write_frames) {
tech_pvt->skip_write_frames--;
return SWITCH_STATUS_SUCCESS;
}
while (bytes > 0) {
unsigned int towrite;
if (switch_test_flag(tech_pvt, TFLAG_BYE) || tech_pvt->socket < 0) {
return SWITCH_STATUS_GENERR;
}
sangoma_socket_waitfor(tech_pvt->socket, -1, POLLOUT | POLLERR | POLLHUP);
#ifdef DOTRACE
write(tech_pvt->fd, bp, (int) globals.mtu);
#endif
towrite = bytes >= globals.mtu ? globals.mtu : bytes;
res = sangoma_sendmsg_socket(tech_pvt->socket,
&tech_pvt->hdrframe, sizeof(tech_pvt->hdrframe), bp, towrite, 0);
if (res < 0) {
switch_console_printf(SWITCH_CHANNEL_CONSOLE,
"Bad Write frame len %d write %d bytes returned %d (%s)!\n", frame->datalen,
globals.mtu, res, strerror(errno));
if (errno == EBUSY) {
continue;
}
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Write Failed!\n");
status = SWITCH_STATUS_GENERR;
break;
} else {
bytes -= res;
bp += res;
res = 0;
}
}
//printf("write %d %d\n", frame->datalen, status);
return status;
}
static switch_status wanpipe_send_dtmf(switch_core_session *session, char *digits)
{
struct private_object *tech_pvt;
switch_channel *channel = NULL;
switch_status status = SWITCH_STATUS_SUCCESS;
int wrote = 0;
char *cur = NULL;
channel = switch_core_session_get_channel(session);
assert(channel != NULL);
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
if (!tech_pvt->dtmf_buffer) {
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Allocate DTMF Buffer....");
if (switch_buffer_create(switch_core_session_get_pool(session), &tech_pvt->dtmf_buffer, 3192) != SWITCH_STATUS_SUCCESS) {
switch_console_printf(SWITCH_CHANNEL_CONSOLE_CLEAN, "FAILURE!\n");
return SWITCH_STATUS_FALSE;
} else {
switch_console_printf(SWITCH_CHANNEL_CONSOLE_CLEAN, "SUCCESS!\n");
}
}
for (cur = digits; *cur; cur++) {
if ((wrote = teletone_mux_tones(&tech_pvt->tone_session, &tech_pvt->tone_session.TONES[(int)*cur]))) {
switch_buffer_write(tech_pvt->dtmf_buffer, tech_pvt->tone_session.buffer, wrote * 2);
}
}
tech_pvt->skip_read_frames = 200;
return status;
}
static switch_status wanpipe_receive_message(switch_core_session *session, switch_core_session_message *msg)
{
return SWITCH_STATUS_FALSE;
}
static switch_status wanpipe_kill_channel(switch_core_session *session, int sig)
{
struct private_object *tech_pvt;
switch_channel *channel = NULL;
channel = switch_core_session_get_channel(session);
assert(channel != NULL);
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
switch_set_flag(tech_pvt, TFLAG_BYE);
switch_clear_flag(tech_pvt, TFLAG_MEDIA);
return SWITCH_STATUS_SUCCESS;
}
static const switch_io_routines wanpipe_io_routines = {
/*.outgoing_channel */ wanpipe_outgoing_channel,
/*.answer_channel */ wanpipe_answer_channel,
/*.read_frame */ wanpipe_read_frame,
/*.write_frame */ wanpipe_write_frame,
/*.kill_channel */ wanpipe_kill_channel,
/*.waitfor_read */ NULL,
/*.waitfor_read */ NULL,
/*.send_dtmf*/ wanpipe_send_dtmf,
/*.receive_message*/ wanpipe_receive_message
};
static const switch_state_handler_table wanpipe_state_handlers = {
/*.on_init */ wanpipe_on_init,
/*.on_ring */ wanpipe_on_ring,
/*.on_execute */ NULL,
/*.on_hangup */ wanpipe_on_hangup,
/*.on_loopback */ wanpipe_on_loopback,
/*.on_transmit */ wanpipe_on_transmit
};
static const switch_endpoint_interface wanpipe_endpoint_interface = {
/*.interface_name */ "wanpipe",
/*.io_routines */ &wanpipe_io_routines,
/*.state_handlers */ &wanpipe_state_handlers,
/*.private */ NULL,
/*.next */ NULL
};
static const switch_loadable_module_interface wanpipe_module_interface = {
/*.module_name */ modname,
/*.endpoint_interface */ &wanpipe_endpoint_interface,
/*.timer_interface */ NULL,
/*.dialplan_interface */ NULL,
/*.codec_interface */ NULL,
/*.application_interface */ NULL
};
static void s_pri_error(struct pri *pri, char *s) static void s_pri_error(struct pri *pri, char *s)
{ {
@ -926,7 +930,7 @@ SWITCH_MOD_DECLARE(switch_status) switch_module_load(const switch_loadable_modul
} }
/* start the pri's */ /* start the pri's */
if ((status = config_wanpipe(0) != SWITCH_STATUS_SUCCESS)) { if ((status = config_wanpipe(0)) != SWITCH_STATUS_SUCCESS) {
return status; return status;
} }
@ -1222,7 +1226,7 @@ static int on_dchan_down(struct sangoma_pri *spri, sangoma_pri_event_t event_typ
static int on_anything(struct sangoma_pri *spri, sangoma_pri_event_t event_type, pri_event *event) static int on_anything(struct sangoma_pri *spri, sangoma_pri_event_t event_type, pri_event *event)
{ {
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Caught Event span %d %d (%s)\n", spri->span, event_type, switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Caught Event span %d %u (%s)\n", spri->span, event_type,
sangoma_pri_event_str(event_type)); sangoma_pri_event_str(event_type));
return 0; return 0;
} }
@ -1276,7 +1280,6 @@ static switch_status config_wanpipe(int reload)
{ {
switch_config cfg; switch_config cfg;
char *var, *val; char *var, *val;
int count = 0;
char *cf = "wanpipe.conf"; char *cf = "wanpipe.conf";
int current_span = 0; int current_span = 0;
@ -1404,7 +1407,7 @@ static switch_status config_wanpipe(int reload)
return count; return SWITCH_STATUS_SUCCESS;
} }

View File

@ -329,8 +329,8 @@ static switch_status woomerachan_kill_channel(switch_core_session *session, int
udp_socket_close(tech_pvt); udp_socket_close(tech_pvt);
switch_channel_hangup(channel); switch_channel_hangup(channel);
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "%s WOOMERACHAN KILL %d\n", switch_channel_get_name(channel), switch_console_printf(SWITCH_CHANNEL_CONSOLE, "%s WOOMERACHAN KILL\n", switch_channel_get_name(channel));
tech_pvt->udp_socket);
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
@ -355,7 +355,7 @@ static switch_status woomerachan_waitfor_read(switch_core_session *session, int
tech_pvt = switch_core_session_get_private(session); tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL); assert(tech_pvt != NULL);
return switch_socket_waitfor(&tech_pvt->read_poll, ms); return switch_socket_waitfor(&tech_pvt->read_poll, ms) ? SWITCH_STATUS_FALSE : SWITCH_STATUS_SUCCESS;
} }
static switch_status woomerachan_waitfor_write(switch_core_session *session, int ms, int stream_id) static switch_status woomerachan_waitfor_write(switch_core_session *session, int ms, int stream_id)
@ -375,7 +375,6 @@ static switch_status woomerachan_read_frame(switch_core_session *session, switch
switch_channel *channel = NULL; switch_channel *channel = NULL;
struct private_object *tech_pvt = NULL; struct private_object *tech_pvt = NULL;
switch_frame *pframe; switch_frame *pframe;
switch_status status;
channel = switch_core_session_get_channel(session); channel = switch_core_session_get_channel(session);
assert(channel != NULL); assert(channel != NULL);
@ -395,12 +394,12 @@ static switch_status woomerachan_read_frame(switch_core_session *session, switch
*frame = pframe; *frame = pframe;
pframe->datalen = sizeof(tech_pvt->databuf); pframe->datalen = sizeof(tech_pvt->databuf);
if ((status = if (switch_socket_recvfrom(tech_pvt->udpread, tech_pvt->udp_socket, 0, tech_pvt->databuf, &pframe->datalen) == SWITCH_STATUS_SUCCESS) {
switch_socket_recvfrom(tech_pvt->udpread, tech_pvt->udp_socket, 0, tech_pvt->databuf,
&pframe->datalen)) == SWITCH_STATUS_SUCCESS) {
pframe->samples = (int) pframe->datalen / 2; pframe->samples = (int) pframe->datalen / 2;
return SWITCH_STATUS_SUCCESS;
} }
return status;
return SWITCH_STATUS_FALSE;
} }
static switch_status woomerachan_write_frame(switch_core_session *session, switch_frame *frame, int timeout, static switch_status woomerachan_write_frame(switch_core_session *session, switch_frame *frame, int timeout,
@ -408,7 +407,7 @@ static switch_status woomerachan_write_frame(switch_core_session *session, switc
{ {
switch_channel *channel = NULL; switch_channel *channel = NULL;
struct private_object *tech_pvt = NULL; struct private_object *tech_pvt = NULL;
switch_frame *pframe; //switch_frame *pframe;
channel = switch_core_session_get_channel(session); channel = switch_core_session_get_channel(session);
assert(channel != NULL); assert(channel != NULL);
@ -420,9 +419,12 @@ static switch_status woomerachan_write_frame(switch_core_session *session, switc
return SWITCH_STATUS_GENERR; return SWITCH_STATUS_GENERR;
} }
pframe = &tech_pvt->frame; //pframe = &tech_pvt->frame;
return switch_socket_sendto(tech_pvt->udp_socket, tech_pvt->udpwrite, 0, frame->data, &frame->datalen); if (switch_socket_sendto(tech_pvt->udp_socket, tech_pvt->udpwrite, 0, frame->data, &frame->datalen) == SWITCH_STATUS_SUCCESS) {
return SWITCH_STATUS_SUCCESS;
}
return SWITCH_STATUS_GENERR;
} }
static const switch_state_handler_table woomerachan_event_handlers = { static const switch_state_handler_table woomerachan_event_handlers = {
@ -623,10 +625,9 @@ static int woomera_dequeue_event(woomera_event_queue * event_queue, woomera_mess
static int woomera_message_parse(switch_socket_t *fd, woomera_message * wmsg, int timeout, woomera_profile * profile, static int woomera_message_parse(switch_socket_t *fd, woomera_message * wmsg, int timeout, woomera_profile * profile,
woomera_event_queue * event_queue) woomera_event_queue * event_queue)
{ {
char *cur, *cr, *next = NULL, *eor = NULL; char *cur, *cr, *next = NULL;
char buf[2048] = "", *ptr; char buf[2048] = "", *ptr;
int bytes = 0; int bytes = 0;
int failto = 0;
memset(wmsg, 0, sizeof(woomera_message)); memset(wmsg, 0, sizeof(woomera_message));
@ -636,14 +637,13 @@ static int woomera_message_parse(switch_socket_t *fd, woomera_message * wmsg, in
if (timeout < 0) { if (timeout < 0) {
timeout = abs(timeout); timeout = abs(timeout);
failto = 1;
} else if (timeout == 0) { } else if (timeout == 0) {
timeout = -1; timeout = -1;
} }
ptr = buf; ptr = buf;
bytes = 0; bytes = 0;
while ((eor = strstr(buf, WOOMERA_RECORD_SEPERATOR)) == 0) { while (!strstr(buf, WOOMERA_RECORD_SEPERATOR)) {
size_t len = 1; size_t len = 1;
if (!profile->thread_running) { if (!profile->thread_running) {
@ -774,14 +774,12 @@ static int connect_woomera(switch_socket_t **new_sock, woomera_profile * profile
{ {
switch_sockaddr_t *sa; switch_sockaddr_t *sa;
switch_status status;
status = switch_sockaddr_info_get(&sa, profile->woomera_host, AF_INET, profile->woomera_port, 0, module_pool); if (switch_sockaddr_info_get(&sa, profile->woomera_host, AF_INET, profile->woomera_port, 0, module_pool) != SWITCH_STATUS_SUCCESS) {
if (status != SWITCH_STATUS_SUCCESS) {
return -1; return -1;
} }
status = switch_socket_create(new_sock, AF_INET, SOCK_STREAM, 0, module_pool);
if (status != SWITCH_STATUS_SUCCESS) { if (switch_socket_create(new_sock, AF_INET, SOCK_STREAM, 0, module_pool) != SWITCH_STATUS_SUCCESS) {
return -1; return -1;
} }
/* /*
@ -791,8 +789,7 @@ static int connect_woomera(switch_socket_t **new_sock, woomera_profile * profile
return -1; return -1;
} }
*/ */
status = switch_socket_connect((*new_sock), sa); if (switch_socket_connect((*new_sock), sa) != SWITCH_STATUS_SUCCESS) {
if (status != SWITCH_STATUS_SUCCESS) {
return -1; return -1;
} }
@ -1220,7 +1217,7 @@ static void *woomera_thread_run(void *obj)
profile->woomera_host, profile->woomera_port); profile->woomera_host, profile->woomera_port);
} }
}*/ }*/
continue; //continue;
} }
if (!strcasecmp(wmsg.command, "INCOMING")) { if (!strcasecmp(wmsg.command, "INCOMING")) {

View File

@ -95,7 +95,6 @@ static void event_handler(switch_event *event)
switch (event->event_id) { switch (event->event_id) {
case SWITCH_EVENT_LOG: case SWITCH_EVENT_LOG:
return; return;
break;
default: default:
switch_event_serialize(event, buf, sizeof(buf), NULL); switch_event_serialize(event, buf, sizeof(buf), NULL);
len = strlen(buf); len = strlen(buf);
@ -191,7 +190,6 @@ SWITCH_MOD_DECLARE(switch_status) switch_module_shutdown(void)
SWITCH_MOD_DECLARE(switch_status) switch_module_runtime(void) SWITCH_MOD_DECLARE(switch_status) switch_module_runtime(void)
{ {
switch_event *local_event; switch_event *local_event;
switch_status status;
char buf[1024]; char buf[1024];
globals.running = 1; globals.running = 1;
@ -199,7 +197,7 @@ SWITCH_MOD_DECLARE(switch_status) switch_module_runtime(void)
switch_sockaddr_t addr = {0}; switch_sockaddr_t addr = {0};
size_t len = sizeof(buf); size_t len = sizeof(buf);
memset(buf, 0, len); memset(buf, 0, len);
if ((status = switch_socket_recvfrom(&addr, globals.udp_socket, 0, buf, &len)) == SWITCH_STATUS_SUCCESS) { if (switch_socket_recvfrom(&addr, globals.udp_socket, 0, buf, &len) == SWITCH_STATUS_SUCCESS) {
if (switch_event_create_subclass(&local_event, SWITCH_EVENT_CUSTOM, MULTICAST_EVENT) == SWITCH_STATUS_SUCCESS) { if (switch_event_create_subclass(&local_event, SWITCH_EVENT_CUSTOM, MULTICAST_EVENT) == SWITCH_STATUS_SUCCESS) {
char *var, *val, *term = NULL; char *var, *val, *term = NULL;
switch_event_add_header(local_event, SWITCH_STACK_BOTTOM, "Multicast", "yes"); switch_event_add_header(local_event, SWITCH_STACK_BOTTOM, "Multicast", "yes");

View File

@ -43,7 +43,6 @@ static void event_handler(switch_event *event)
switch (event->event_id) { switch (event->event_id) {
case SWITCH_EVENT_LOG: case SWITCH_EVENT_LOG:
return; return;
break;
default: default:
switch_event_serialize(event, buf, sizeof(buf), NULL); switch_event_serialize(event, buf, sizeof(buf), NULL);
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "\nEVENT\n--------------------------------\n%s\n", buf); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "\nEVENT\n--------------------------------\n%s\n", buf);

View File

@ -144,13 +144,13 @@ SWITCH_DECLARE_GLOBAL_STRING_FUNC(set_global_jid, globals.jid)
} }
int on_result(struct session *sess, ikspak * pak) static int on_result(struct session *sess, ikspak * pak)
{ {
return IKS_FILTER_EAT; return IKS_FILTER_EAT;
} }
int on_stream(struct session *sess, int type, iks * node) static int on_stream(struct session *sess, int type, iks * node)
{ {
sess->counter = opt_timeout; sess->counter = opt_timeout;
@ -216,7 +216,7 @@ int on_stream(struct session *sess, int type, iks * node)
return IKS_OK; return IKS_OK;
} }
int on_msg(void *user_data, ikspak * pak) static int on_msg(void *user_data, ikspak * pak)
{ {
char *cmd = iks_find_cdata(pak->x, "body"); char *cmd = iks_find_cdata(pak->x, "body");
char *arg = NULL; char *arg = NULL;
@ -238,13 +238,13 @@ int on_msg(void *user_data, ikspak * pak)
return 0; return 0;
} }
int on_error(void *user_data, ikspak * pak) static int on_error(void *user_data, ikspak * pak)
{ {
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "authorization failed\n"); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "authorization failed\n");
return IKS_FILTER_EAT; return IKS_FILTER_EAT;
} }
void on_log(struct session *sess, const char *data, size_t size, int is_incoming) static void on_log(struct session *sess, const char *data, size_t size, int is_incoming)
{ {
if (iks_is_secure(sess->parser)) if (iks_is_secure(sess->parser))
fprintf(stderr, "Sec"); fprintf(stderr, "Sec");
@ -255,7 +255,7 @@ void on_log(struct session *sess, const char *data, size_t size, int is_incoming
fprintf(stderr, "[%s]\n", data); fprintf(stderr, "[%s]\n", data);
} }
void j_setup_filter(struct session *sess) static void j_setup_filter(struct session *sess)
{ {
if (my_filter) if (my_filter)
iks_filter_delete(my_filter); iks_filter_delete(my_filter);

View File

@ -172,7 +172,7 @@ static void event_handler(switch_event *event)
my_service_reply, my_service_reply,
NULL, NULL,
&globals.disc_id)) != SW_OKAY) { &globals.disc_id)) != SW_OKAY) {
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "publish failed: %d\n", result); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "publish failed: %u\n", result);
sw_text_record_fina(text_record); sw_text_record_fina(text_record);
switch_mutex_unlock(globals.zc_lock); switch_mutex_unlock(globals.zc_lock);
return; return;

View File

@ -41,7 +41,7 @@ struct sndfile_context {
typedef struct sndfile_context sndfile_context; typedef struct sndfile_context sndfile_context;
switch_status sndfile_file_open(switch_file_handle *handle, char *path) static switch_status sndfile_file_open(switch_file_handle *handle, char *path)
{ {
sndfile_context *context; sndfile_context *context;
int mode = 0; int mode = 0;
@ -144,7 +144,7 @@ switch_status sndfile_file_open(switch_file_handle *handle, char *path)
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
} }
switch_status sndfile_file_close(switch_file_handle *handle) static switch_status sndfile_file_close(switch_file_handle *handle)
{ {
sndfile_context *context = handle->private_info; sndfile_context *context = handle->private_info;
@ -153,7 +153,7 @@ switch_status sndfile_file_close(switch_file_handle *handle)
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
} }
switch_status sndfile_file_seek(switch_file_handle *handle, unsigned int *cur_sample, int64_t samples, int whence) static switch_status sndfile_file_seek(switch_file_handle *handle, unsigned int *cur_sample, int64_t samples, int whence)
{ {
sndfile_context *context = handle->private_info; sndfile_context *context = handle->private_info;
@ -169,7 +169,7 @@ switch_status sndfile_file_seek(switch_file_handle *handle, unsigned int *cur_sa
} }
switch_status sndfile_file_read(switch_file_handle *handle, void *data, size_t *len) static switch_status sndfile_file_read(switch_file_handle *handle, void *data, size_t *len)
{ {
size_t inlen = *len; size_t inlen = *len;
sndfile_context *context = handle->private_info; sndfile_context *context = handle->private_info;
@ -191,7 +191,7 @@ switch_status sndfile_file_read(switch_file_handle *handle, void *data, size_t *
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
} }
switch_status sndfile_file_write(switch_file_handle *handle, void *data, size_t *len) static switch_status sndfile_file_write(switch_file_handle *handle, void *data, size_t *len)
{ {
size_t inlen = *len; size_t inlen = *len;
sndfile_context *context = handle->private_info; sndfile_context *context = handle->private_info;

View File

@ -40,7 +40,7 @@ $(MODNAME).$(DYNAMIC_LIB_EXTEN): $(MODNAME).c $(MODNAME).o $(OBJS)
$(CC) $(SOLINK) -o $(MODNAME).$(DYNAMIC_LIB_EXTEN) $(MODNAME).o $(OBJS) $(LDFLAGS) $(CC) $(SOLINK) -o $(MODNAME).$(DYNAMIC_LIB_EXTEN) $(MODNAME).o $(OBJS) $(LDFLAGS)
clean: clean:
rm -fr *.$(DYNAMIC_LIB_EXTEN) *.o *~ perlxsi.c .perlok rm -fr *.$(DYNAMIC_LIB_EXTEN) *.o *~ .perlok
install: install:
mkdir -p $(PREFIX)/perl mkdir -p $(PREFIX)/perl

View File

@ -29,7 +29,9 @@
* mod_perl.c -- Perl * mod_perl.c -- Perl
* *
*/ */
#ifdef __ICC
#pragma warning (disable:1419)
#endif
#ifdef _MSC_VER #ifdef _MSC_VER
#include <perlibs.h> #include <perlibs.h>
#pragma comment(lib, PERL_LIB) #pragma comment(lib, PERL_LIB)

View File

@ -0,0 +1,19 @@
#ifdef __ICC
#pragma warning (disable:1419)
#endif
#include <EXTERN.h>
#include <perl.h>
EXTERN_C void xs_init (pTHX);
EXTERN_C void boot_DynaLoader (pTHX_ CV* cv);
EXTERN_C void
xs_init(pTHX)
{
char *file = __FILE__;
dXSUB_SYS;
/* DynaLoader is a special case */
newXS("DynaLoader::boot_DynaLoader", boot_DynaLoader, file);
}

View File

@ -1,4 +1,9 @@
#include <switch.h> #include <switch.h>
#ifdef __ICC
#pragma warning (disable:1418)
#endif
#ifdef _MSC_VER #ifdef _MSC_VER
#include <perlibs.h> #include <perlibs.h>
@ -108,9 +113,12 @@ void fs_channel_set_state(struct switch_core_session *session, char *state)
switch_channel_set_state(channel, fs_state); switch_channel_set_state(channel, fs_state);
} }
int fs_ivr_play_file(struct switch_core_session *session, char *file, char *timer_name_in) int fs_ivr_play_file(struct switch_core_session *session, char *file, char *timer_name)
{ {
char *timer_name = switch_strlen_zero(timer_name_in) ? NULL : timer_name; if (switch_strlen_zero(timer_name)) {
timer_name = NULL;
}
switch_status status = switch_ivr_play_file(session, NULL, file, timer_name, NULL, NULL, 0); switch_status status = switch_ivr_play_file(session, NULL, file, timer_name, NULL, NULL, 0);
return status == SWITCH_STATUS_SUCCESS ? 1 : 0; return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
} }

View File

@ -33,6 +33,9 @@
#define HAVE_CURL #define HAVE_CURL
#endif #endif
#define JS_BUFFER_SIZE 131072 #define JS_BUFFER_SIZE 131072
#ifdef __ICC
#pragma warning (disable:310 193 1418)
#endif
#include <switch.h> #include <switch.h>
#include "jstypes.h" #include "jstypes.h"
@ -1363,8 +1366,8 @@ static JSBool db_fetch(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, js
} }
for (x = 0; x < colcount; x++) { for (x = 0; x < colcount; x++) {
snprintf(code, sizeof(code), "~_dB_RoW_DaTa_[\"%s\"] = \"%s\"", snprintf(code, sizeof(code), "~_dB_RoW_DaTa_[\"%s\"] = \"%s\"",
switch_core_db_column_name(dbo->stmt, x), (char *) switch_core_db_column_name(dbo->stmt, x),
switch_core_db_column_text(dbo->stmt, x)); (char *) switch_core_db_column_text(dbo->stmt, x));
eval_some_js(code, dbo->cx, dbo->obj, rval); eval_some_js(code, dbo->cx, dbo->obj, rval);
if (*rval == JS_FALSE) { if (*rval == JS_FALSE) {
@ -1517,7 +1520,7 @@ static JSBool teletone_construct(JSContext *cx, JSObject *obj, uintN argc, jsval
(read_codec->implementation->samples_per_second / 50) * read_codec->implementation->number_of_channels, (read_codec->implementation->samples_per_second / 50) * read_codec->implementation->number_of_channels,
pool) == SWITCH_STATUS_SUCCESS) { pool) == SWITCH_STATUS_SUCCESS) {
tto->timer = &tto->timer_base; tto->timer = &tto->timer_base;
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Timer INIT Success %d\n", ms); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Timer INIT Success %u\n", ms);
} else { } else {
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Timer INIT Failed\n"); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Timer INIT Failed\n");
} }
@ -1653,9 +1656,7 @@ static JSBool teletone_generate(JSContext *cx, JSObject *obj, uintN argc, jsval
} }
if (tto->timer) { if (tto->timer) {
int x; if (switch_core_timer_next(tto->timer)< 0) {
if ((x = switch_core_timer_next(tto->timer)) < 0) {
break; break;
} }
@ -1850,7 +1851,7 @@ static JSBool js_email(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, js
if ( argc > 4) { if ( argc > 4) {
file = JS_GetStringBytes(JS_ValueToString(cx, argv[4])); file = JS_GetStringBytes(JS_ValueToString(cx, argv[4]));
} }
snprintf(filename, 80, "%smail.%ld", SWITCH_GLOBAL_dirs.temp_dir, switch_time_now()); snprintf(filename, 80, "%smail.%ld%04x", SWITCH_GLOBAL_dirs.temp_dir, time(NULL), rand() & 0xffff);
if ((fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0644))) { if ((fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0644))) {
if (file) { if (file) {
@ -2051,7 +2052,7 @@ static int env_init(JSContext *cx, JSObject *javascript_object)
static void js_parse_and_execute(switch_core_session *session, char *input_code) static void js_parse_and_execute(switch_core_session *session, char *input_code)
{ {
JSObject *javascript_global_object = NULL, *session_obj = NULL; JSObject *javascript_global_object = NULL;
char buf[1024], *script, *arg, *argv[512]; char buf[1024], *script, *arg, *argv[512];
int argc = 0, x = 0, y = 0; int argc = 0, x = 0, y = 0;
unsigned int flags = 0; unsigned int flags = 0;
@ -2067,7 +2068,7 @@ static void js_parse_and_execute(switch_core_session *session, char *input_code)
JS_SetGlobalObject(cx, javascript_global_object); JS_SetGlobalObject(cx, javascript_global_object);
/* Emaculent conception of session object into the script if one is available */ /* Emaculent conception of session object into the script if one is available */
if (session && (session_obj = new_js_session(cx, javascript_global_object, session, &jss, "session", flags))) { if (session && new_js_session(cx, javascript_global_object, session, &jss, "session", flags)) {
JS_SetPrivate(cx, javascript_global_object, session); JS_SetPrivate(cx, javascript_global_object, session);
} }
} else { } else {

View File

@ -36,6 +36,7 @@ static int RUNNING = 0;
static int handle_SIGPIPE(int sig) static int handle_SIGPIPE(int sig)
{ {
if(sig);
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Sig Pipe!\n"); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Sig Pipe!\n");
return 0; return 0;
} }
@ -50,12 +51,14 @@ static int handle_SIGBUS(int sig)
/* no ctl-c mofo */ /* no ctl-c mofo */
static int handle_SIGINT(int sig) static int handle_SIGINT(int sig)
{ {
if (sig);
return 0; return 0;
} }
static int handle_SIGHUP(int sig) static int handle_SIGHUP(int sig)
{ {
if(sig);
RUNNING = 0; RUNNING = 0;
return 0; return 0;
} }
@ -113,6 +116,9 @@ int main(int argc, char *argv[])
} }
#ifdef __ICC
#pragma warning (disable:167)
#endif
/* set signal handlers */ /* set signal handlers */
signal(SIGINT, (void *) handle_SIGINT); signal(SIGINT, (void *) handle_SIGINT);

View File

@ -33,11 +33,11 @@
struct switch_buffer { struct switch_buffer {
unsigned char *data; unsigned char *data;
size_t used; switch_size_t used;
size_t datalen; switch_size_t datalen;
}; };
SWITCH_DECLARE(switch_status) switch_buffer_create(switch_memory_pool *pool, switch_buffer **buffer, size_t max_len) SWITCH_DECLARE(switch_status) switch_buffer_create(switch_memory_pool *pool, switch_buffer **buffer, switch_size_t max_len)
{ {
switch_buffer *new_buffer; switch_buffer *new_buffer;
@ -50,33 +50,33 @@ SWITCH_DECLARE(switch_status) switch_buffer_create(switch_memory_pool *pool, swi
return SWITCH_STATUS_MEMERR; return SWITCH_STATUS_MEMERR;
} }
SWITCH_DECLARE(int) switch_buffer_len(switch_buffer *buffer) SWITCH_DECLARE(switch_size_t) switch_buffer_len(switch_buffer *buffer)
{ {
assert(buffer != NULL); assert(buffer != NULL);
return (int) buffer->datalen; return buffer->datalen;
} }
SWITCH_DECLARE(int) switch_buffer_freespace(switch_buffer *buffer) SWITCH_DECLARE(switch_size_t) switch_buffer_freespace(switch_buffer *buffer)
{ {
assert(buffer != NULL); assert(buffer != NULL);
return (int) (buffer->datalen - buffer->used); return (switch_size_t) (buffer->datalen - buffer->used);
} }
SWITCH_DECLARE(size_t) switch_buffer_inuse(switch_buffer *buffer) SWITCH_DECLARE(switch_size_t) switch_buffer_inuse(switch_buffer *buffer)
{ {
assert(buffer != NULL); assert(buffer != NULL);
return (int) buffer->used; return buffer->used;
} }
SWITCH_DECLARE(int) switch_buffer_toss(switch_buffer *buffer, size_t datalen) SWITCH_DECLARE(switch_size_t) switch_buffer_toss(switch_buffer *buffer, switch_size_t datalen)
{ {
size_t reading = 0; switch_size_t reading = 0;
assert(buffer != NULL); assert(buffer != NULL);
@ -92,12 +92,12 @@ SWITCH_DECLARE(int) switch_buffer_toss(switch_buffer *buffer, size_t datalen)
memmove(buffer->data, buffer->data + reading, buffer->datalen - reading); memmove(buffer->data, buffer->data + reading, buffer->datalen - reading);
buffer->used -= datalen; buffer->used -= datalen;
return (int) buffer->datalen; return buffer->datalen;
} }
SWITCH_DECLARE(int) switch_buffer_read(switch_buffer *buffer, void *data, size_t datalen) SWITCH_DECLARE(switch_size_t) switch_buffer_read(switch_buffer *buffer, void *data, switch_size_t datalen)
{ {
size_t reading = 0; switch_size_t reading = 0;
assert(buffer != NULL); assert(buffer != NULL);
assert(data != NULL); assert(data != NULL);
@ -116,12 +116,12 @@ SWITCH_DECLARE(int) switch_buffer_read(switch_buffer *buffer, void *data, size_t
memmove(buffer->data, buffer->data + reading, buffer->datalen - reading); memmove(buffer->data, buffer->data + reading, buffer->datalen - reading);
buffer->used -= reading; buffer->used -= reading;
//printf("o %d = %d\n", reading, buffer->used); //printf("o %d = %d\n", reading, buffer->used);
return (int) reading; return reading;
} }
SWITCH_DECLARE(int) switch_buffer_write(switch_buffer *buffer, void *data, size_t datalen) SWITCH_DECLARE(switch_size_t) switch_buffer_write(switch_buffer *buffer, void *data, switch_size_t datalen)
{ {
size_t freespace; switch_size_t freespace;
assert(buffer != NULL); assert(buffer != NULL);
assert(data != NULL); assert(data != NULL);
@ -136,7 +136,7 @@ SWITCH_DECLARE(int) switch_buffer_write(switch_buffer *buffer, void *data, size_
buffer->used += datalen; buffer->used += datalen;
} }
//printf("i %d = %d\n", datalen, buffer->used); //printf("i %d = %d\n", datalen, buffer->used);
return (int) buffer->used; return buffer->used;
} }
SWITCH_DECLARE(void) switch_buffer_zero(switch_buffer *buffer) SWITCH_DECLARE(void) switch_buffer_zero(switch_buffer *buffer)

View File

@ -37,7 +37,7 @@ struct switch_channel {
switch_mutex_t *dtmf_mutex; switch_mutex_t *dtmf_mutex;
switch_core_session *session; switch_core_session *session;
switch_channel_state state; switch_channel_state state;
switch_channel_flag flags; uint32_t flags;
switch_caller_profile *caller_profile; switch_caller_profile *caller_profile;
switch_caller_profile *originator_caller_profile; switch_caller_profile *originator_caller_profile;
switch_caller_profile *originatee_caller_profile; switch_caller_profile *originatee_caller_profile;
@ -115,9 +115,9 @@ SWITCH_DECLARE(switch_status) switch_channel_get_raw_mode(switch_channel *channe
} }
SWITCH_DECLARE(size_t) switch_channel_has_dtmf(switch_channel *channel) SWITCH_DECLARE(switch_size_t) switch_channel_has_dtmf(switch_channel *channel)
{ {
size_t has; switch_size_t has;
assert(channel != NULL); assert(channel != NULL);
switch_mutex_lock(channel->dtmf_mutex); switch_mutex_lock(channel->dtmf_mutex);
@ -130,22 +130,27 @@ SWITCH_DECLARE(size_t) switch_channel_has_dtmf(switch_channel *channel)
SWITCH_DECLARE(switch_status) switch_channel_queue_dtmf(switch_channel *channel, char *dtmf) SWITCH_DECLARE(switch_status) switch_channel_queue_dtmf(switch_channel *channel, char *dtmf)
{ {
switch_status status; switch_status status;
register switch_size_t len, inuse;
assert(channel != NULL); assert(channel != NULL);
switch_mutex_lock(channel->dtmf_mutex); switch_mutex_lock(channel->dtmf_mutex);
if (switch_buffer_inuse(channel->dtmf_buffer) + strlen(dtmf) > (size_t) switch_buffer_len(channel->dtmf_buffer)) {
inuse = switch_buffer_inuse(channel->dtmf_buffer);
len = strlen(dtmf);
if (len + inuse > switch_buffer_len(channel->dtmf_buffer)) {
switch_buffer_toss(channel->dtmf_buffer, strlen(dtmf)); switch_buffer_toss(channel->dtmf_buffer, strlen(dtmf));
} }
status = switch_buffer_write(channel->dtmf_buffer, dtmf, strlen(dtmf)); status = switch_buffer_write(channel->dtmf_buffer, dtmf, len) ? SWITCH_STATUS_SUCCESS : SWITCH_STATUS_MEMERR;
switch_mutex_unlock(channel->dtmf_mutex); switch_mutex_unlock(channel->dtmf_mutex);
return status; return status;
} }
SWITCH_DECLARE(int) switch_channel_dequeue_dtmf(switch_channel *channel, char *dtmf, size_t len) SWITCH_DECLARE(int) switch_channel_dequeue_dtmf(switch_channel *channel, char *dtmf, switch_size_t len)
{ {
int bytes; int bytes;
switch_event *event; switch_event *event;
@ -170,7 +175,7 @@ SWITCH_DECLARE(int) switch_channel_dequeue_dtmf(switch_channel *channel, char *d
SWITCH_DECLARE(switch_status) switch_channel_init(switch_channel *channel, SWITCH_DECLARE(switch_status) switch_channel_init(switch_channel *channel,
switch_core_session *session, switch_core_session *session,
switch_channel_state state, switch_channel_flag flags) switch_channel_state state, uint32_t flags)
{ {
assert(channel != NULL); assert(channel != NULL);
channel->state = state; channel->state = state;
@ -225,21 +230,19 @@ SWITCH_DECLARE(switch_status) switch_channel_set_variable(switch_channel *channe
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
} }
SWITCH_DECLARE(switch_status) switch_channel_test_flag(switch_channel *channel, int flags) SWITCH_DECLARE(int) switch_channel_test_flag(switch_channel *channel, switch_channel_flag flags)
{ {
return switch_test_flag(channel, flags); return switch_test_flag(channel, flags) ? 1 : 0;
} }
SWITCH_DECLARE(switch_status) switch_channel_set_flag(switch_channel *channel, int flags) SWITCH_DECLARE(void) switch_channel_set_flag(switch_channel *channel, switch_channel_flag flags)
{ {
switch_set_flag(channel, flags); switch_set_flag(channel, flags);
return SWITCH_STATUS_SUCCESS;
} }
SWITCH_DECLARE(switch_status) switch_channel_clear_flag(switch_channel *channel, int flags) SWITCH_DECLARE(void) switch_channel_clear_flag(switch_channel *channel, switch_channel_flag flags)
{ {
switch_set_flag(channel, flags); switch_clear_flag(channel, flags);
return SWITCH_STATUS_SUCCESS;
} }
SWITCH_DECLARE(switch_channel_state) switch_channel_get_state(switch_channel *channel) SWITCH_DECLARE(switch_channel_state) switch_channel_get_state(switch_channel *channel)
@ -447,9 +450,7 @@ SWITCH_DECLARE(void) switch_channel_event_set_data(switch_channel *channel, swit
for (hi = switch_hash_first(switch_core_session_get_pool(channel->session), channel->variables); hi; for (hi = switch_hash_first(switch_core_session_get_pool(channel->session), channel->variables); hi;
hi = switch_hash_next(hi)) { hi = switch_hash_next(hi)) {
char buf[1024]; char buf[1024];
switch_event_subclass *subclass;
switch_hash_this(hi, &var, NULL, &val); switch_hash_this(hi, &var, NULL, &val);
subclass = val;
snprintf(buf, sizeof(buf), "variable_%s", (char *) var); snprintf(buf, sizeof(buf), "variable_%s", (char *) var);
switch_event_add_header(event, SWITCH_STACK_BOTTOM, buf, (char *) val); switch_event_add_header(event, SWITCH_STACK_BOTTOM, buf, (char *) val);
} }

View File

@ -31,7 +31,7 @@
*/ */
#include <switch_console.h> #include <switch_console.h>
#include <switch.h> #include <switch.h>
#define CMD_BUFLEN SWITCH_RECCOMMENDED_BUFFER_SIZE * 10 #define CMD_BUFLEN 1024 * 1000
static int switch_console_process(char *cmd, char *retbuf, int retlen) static int switch_console_process(char *cmd, char *retbuf, int retlen)
{ {
@ -62,8 +62,7 @@ static int switch_console_process(char *cmd, char *retbuf, int retlen)
*arg++ = '\0'; *arg++ = '\0';
} }
if (switch_api_execute(cmd, arg, retbuf, retlen) == SWITCH_STATUS_SUCCESS) { if (switch_api_execute(cmd, arg, retbuf, retlen) == SWITCH_STATUS_SUCCESS) {
switch_console_printf(SWITCH_CHANNEL_CONSOLE_CLEAN, "API CALL [%s(%s)] output:\n%s\n", cmd, arg ? arg : "", switch_console_printf(SWITCH_CHANNEL_CONSOLE_CLEAN, "API CALL [%s(%s)] output:\n%s\n", cmd, arg ? arg : "", retbuf);
retbuf);
} else { } else {
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Unknown Command: %s\n", cmd); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Unknown Command: %s\n", cmd);
} }
@ -98,7 +97,7 @@ SWITCH_DECLARE(void) switch_console_printf(switch_text_channel channel, char *fi
if (channel == SWITCH_CHANNEL_ID_CONSOLE_CLEAN) { if (channel == SWITCH_CHANNEL_ID_CONSOLE_CLEAN) {
fprintf(handle, "%s", data); fprintf(handle, "%s", data);
} else { } else {
size_t retsize; switch_size_t retsize;
switch_time_exp_t tm; switch_time_exp_t tm;
switch_event *event; switch_event *event;
switch_time_exp_lt(&tm, switch_time_now()); switch_time_exp_lt(&tm, switch_time_now());
@ -152,7 +151,7 @@ SWITCH_DECLARE(void) switch_console_loop(void)
memset(&cmd, 0, sizeof(cmd)); memset(&cmd, 0, sizeof(cmd));
for (x = 0; x < sizeof(cmd); x++) { for (x = 0; x < sizeof(cmd); x++) {
cmd[x] = (char)getchar(); cmd[x] = (char) getchar();
if (cmd[x] == '\n') { if (cmd[x] == '\n') {
cmd[x] = '\0'; cmd[x] = '\0';
break; break;

View File

@ -33,7 +33,7 @@
//#define DEBUG_ALLOC //#define DEBUG_ALLOC
struct switch_core_session { struct switch_core_session {
unsigned long id; uint32_t id;
char name[80]; char name[80];
int thread_running; int thread_running;
switch_memory_pool *pool; switch_memory_pool *pool;
@ -74,7 +74,7 @@ SWITCH_DECLARE_DATA switch_directories SWITCH_GLOBAL_dirs;
struct switch_core_runtime { struct switch_core_runtime {
time_t initiated; time_t initiated;
unsigned long session_id; uint32_t session_id;
apr_pool_t *memory_pool; apr_pool_t *memory_pool;
switch_hash *session_table; switch_hash *session_table;
switch_core_db *db; switch_core_db *db;
@ -96,7 +96,7 @@ static void switch_core_standard_on_transmit(switch_core_session *session);
/* The main runtime obj we keep this hidden for ourselves */ /* The main runtime obj we keep this hidden for ourselves */
static struct switch_core_runtime runtime; static struct switch_core_runtime runtime;
static void db_pick_path(char *dbname, char *buf, size_t size) static void db_pick_path(char *dbname, char *buf, switch_size_t size)
{ {
memset(buf, 0, size); memset(buf, 0, size);
@ -227,7 +227,7 @@ SWITCH_DECLARE(switch_codec *) switch_core_session_get_write_codec(switch_core_s
} }
SWITCH_DECLARE(switch_status) switch_core_codec_init(switch_codec *codec, char *codec_name, int rate, int ms, SWITCH_DECLARE(switch_status) switch_core_codec_init(switch_codec *codec, char *codec_name, int rate, int ms,
int channels, switch_codec_flag flags, int channels, uint32_t flags,
const switch_codec_settings *codec_settings, const switch_codec_settings *codec_settings,
switch_memory_pool *pool) switch_memory_pool *pool)
{ {
@ -282,10 +282,10 @@ SWITCH_DECLARE(switch_status) switch_core_codec_init(switch_codec *codec, char *
SWITCH_DECLARE(switch_status) switch_core_codec_encode(switch_codec *codec, SWITCH_DECLARE(switch_status) switch_core_codec_encode(switch_codec *codec,
switch_codec *other_codec, switch_codec *other_codec,
void *decoded_data, void *decoded_data,
size_t decoded_data_len, switch_size_t decoded_data_len,
int decoded_rate, int decoded_rate,
void *encoded_data, void *encoded_data,
size_t *encoded_data_len, int *encoded_rate, unsigned int *flag) switch_size_t *encoded_data_len, int *encoded_rate, unsigned int *flag)
{ {
assert(codec != NULL); assert(codec != NULL);
assert(encoded_data != NULL); assert(encoded_data != NULL);
@ -313,10 +313,10 @@ SWITCH_DECLARE(switch_status) switch_core_codec_encode(switch_codec *codec,
SWITCH_DECLARE(switch_status) switch_core_codec_decode(switch_codec *codec, SWITCH_DECLARE(switch_status) switch_core_codec_decode(switch_codec *codec,
switch_codec *other_codec, switch_codec *other_codec,
void *encoded_data, void *encoded_data,
size_t encoded_data_len, switch_size_t encoded_data_len,
int encoded_rate, int encoded_rate,
void *decoded_data, void *decoded_data,
size_t *decoded_data_len, int *decoded_rate, unsigned int *flag) switch_size_t *decoded_data_len, int *decoded_rate, unsigned int *flag)
{ {
assert(codec != NULL); assert(codec != NULL);
@ -392,14 +392,14 @@ SWITCH_DECLARE(switch_status) switch_core_file_open(switch_file_handle *fh, char
return fh->file_interface->file_open(fh, file_path); return fh->file_interface->file_open(fh, file_path);
} }
SWITCH_DECLARE(switch_status) switch_core_file_read(switch_file_handle *fh, void *data, size_t *len) SWITCH_DECLARE(switch_status) switch_core_file_read(switch_file_handle *fh, void *data, switch_size_t *len)
{ {
assert(fh != NULL); assert(fh != NULL);
return fh->file_interface->file_read(fh, data, len); return fh->file_interface->file_read(fh, data, len);
} }
SWITCH_DECLARE(switch_status) switch_core_file_write(switch_file_handle *fh, void *data, size_t *len) SWITCH_DECLARE(switch_status) switch_core_file_write(switch_file_handle *fh, void *data, switch_size_t *len)
{ {
assert(fh != NULL); assert(fh != NULL);
@ -513,8 +513,8 @@ SWITCH_DECLARE(switch_status) switch_core_speech_feed_tts(switch_speech_handle *
SWITCH_DECLARE(switch_status) switch_core_speech_read_tts(switch_speech_handle *sh, SWITCH_DECLARE(switch_status) switch_core_speech_read_tts(switch_speech_handle *sh,
void *data, void *data,
size_t *datalen, switch_size_t *datalen,
size_t *rate, switch_size_t *rate,
switch_speech_flag *flags) switch_speech_flag *flags)
{ {
assert(sh != NULL); assert(sh != NULL);
@ -599,6 +599,7 @@ static void *switch_core_service_thread(switch_thread *thread, void *obj)
switch_frame *read_frame; switch_frame *read_frame;
int stream_id = *stream_id_p; int stream_id = *stream_id_p;
assert(thread != NULL);
assert(session != NULL); assert(session != NULL);
channel = switch_core_session_get_channel(session); channel = switch_core_session_get_channel(session);
assert(channel != NULL); assert(channel != NULL);
@ -612,7 +613,6 @@ static void *switch_core_service_thread(switch_thread *thread, void *obj)
default: default:
data->running = -1; data->running = -1;
continue; continue;
break;
} }
switch_yield(10000); switch_yield(10000);
@ -650,7 +650,7 @@ SWITCH_DECLARE(switch_memory_pool *) switch_core_session_get_pool(switch_core_se
/* **ONLY** alloc things with this function that **WILL NOT** outlive /* **ONLY** alloc things with this function that **WILL NOT** outlive
the session itself or expect an earth shattering KABOOM!*/ the session itself or expect an earth shattering KABOOM!*/
SWITCH_DECLARE(void *) switch_core_session_alloc(switch_core_session *session, size_t memory) SWITCH_DECLARE(void *) switch_core_session_alloc(switch_core_session *session, switch_size_t memory)
{ {
void *ptr = NULL; void *ptr = NULL;
assert(session != NULL); assert(session != NULL);
@ -670,7 +670,7 @@ SWITCH_DECLARE(void *) switch_core_session_alloc(switch_core_session *session, s
/* **ONLY** alloc things with these functions that **WILL NOT** need /* **ONLY** alloc things with these functions that **WILL NOT** need
to be freed *EVER* ie this is for *PERMENANT* memory allocation */ to be freed *EVER* ie this is for *PERMENANT* memory allocation */
SWITCH_DECLARE(void *) switch_core_permenant_alloc(size_t memory) SWITCH_DECLARE(void *) switch_core_permenant_alloc(switch_size_t memory)
{ {
void *ptr = NULL; void *ptr = NULL;
assert(runtime.memory_pool != NULL); assert(runtime.memory_pool != NULL);
@ -688,7 +688,7 @@ SWITCH_DECLARE(void *) switch_core_permenant_alloc(size_t memory)
SWITCH_DECLARE(char *) switch_core_permenant_strdup(char *todup) SWITCH_DECLARE(char *) switch_core_permenant_strdup(char *todup)
{ {
char *duped = NULL; char *duped = NULL;
size_t len; switch_size_t len;
assert(runtime.memory_pool != NULL); assert(runtime.memory_pool != NULL);
@ -711,7 +711,7 @@ SWITCH_DECLARE(char *) switch_core_permenant_strdup(char *todup)
SWITCH_DECLARE(char *) switch_core_session_strdup(switch_core_session *session, char *todup) SWITCH_DECLARE(char *) switch_core_session_strdup(switch_core_session *session, char *todup)
{ {
char *duped = NULL; char *duped = NULL;
size_t len; switch_size_t len;
assert(session != NULL); assert(session != NULL);
assert(session->pool != NULL); assert(session->pool != NULL);
@ -734,7 +734,7 @@ SWITCH_DECLARE(char *) switch_core_session_strdup(switch_core_session *session,
SWITCH_DECLARE(char *) switch_core_strdup(switch_memory_pool *pool, char *todup) SWITCH_DECLARE(char *) switch_core_strdup(switch_memory_pool *pool, char *todup)
{ {
char *duped = NULL; char *duped = NULL;
size_t len; switch_size_t len;
assert(pool != NULL); assert(pool != NULL);
if (!todup) { if (!todup) {
@ -963,9 +963,9 @@ SWITCH_DECLARE(switch_status) switch_core_session_read_frame(switch_core_session
break; break;
default: default:
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Codec %s decoder error!\n", switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Codec %s decoder error!\n",
session->read_codec->codec_interface->interface_name); session->read_codec->codec_interface->interface_name);
return status; return status;
break;
} }
} }
if (session->read_resampler) { if (session->read_resampler) {
@ -988,8 +988,8 @@ SWITCH_DECLARE(switch_status) switch_core_session_read_frame(switch_core_session
perfect = TRUE; perfect = TRUE;
} else { } else {
if (!session->raw_read_buffer) { if (!session->raw_read_buffer) {
size_t bytes = session->read_codec->implementation->bytes_per_frame * 10; switch_size_t bytes = session->read_codec->implementation->bytes_per_frame * 10;
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Engaging Read Buffer at %d bytes\n", bytes); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Engaging Read Buffer at %u bytes\n", bytes);
switch_buffer_create(session->pool, &session->raw_read_buffer, bytes); switch_buffer_create(session->pool, &session->raw_read_buffer, bytes);
} }
if (!switch_buffer_write(session->raw_read_buffer, read_frame->data, read_frame->datalen)) { if (!switch_buffer_write(session->raw_read_buffer, read_frame->data, read_frame->datalen)) {
@ -1013,13 +1013,14 @@ SWITCH_DECLARE(switch_status) switch_core_session_read_frame(switch_core_session
} }
session->enc_read_frame.datalen = session->enc_read_frame.buflen; session->enc_read_frame.datalen = session->enc_read_frame.buflen;
status = switch_core_codec_encode(session->read_codec, status = switch_core_codec_encode(session->read_codec,
(*frame)->codec, enc_frame->codec,
session->raw_read_frame.data, enc_frame->data,
session->raw_read_frame.datalen, enc_frame->datalen,
(*frame)->codec->implementation->samples_per_second, enc_frame->codec->implementation->samples_per_second,
session->enc_read_frame.data, session->enc_read_frame.data,
&session->enc_read_frame.datalen, &session->enc_read_frame.datalen,
&session->enc_read_frame.rate, &flag); &session->enc_read_frame.rate,
&flag);
switch (status) { switch (status) {
@ -1122,7 +1123,6 @@ SWITCH_DECLARE(switch_status) switch_core_session_write_frame(switch_core_sessio
break; break;
case SWITCH_STATUS_BREAK: case SWITCH_STATUS_BREAK:
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
break;
case SWITCH_STATUS_NOOP: case SWITCH_STATUS_NOOP:
write_frame = frame; write_frame = frame;
status = SWITCH_STATUS_SUCCESS; status = SWITCH_STATUS_SUCCESS;
@ -1131,7 +1131,6 @@ SWITCH_DECLARE(switch_status) switch_core_session_write_frame(switch_core_sessio
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Codec %s decoder error!\n", switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Codec %s decoder error!\n",
frame->codec->codec_interface->interface_name); frame->codec->codec_interface->interface_name);
return status; return status;
break;
} }
} }
if (session->write_resampler) { if (session->write_resampler) {
@ -1155,9 +1154,9 @@ SWITCH_DECLARE(switch_status) switch_core_session_write_frame(switch_core_sessio
perfect = TRUE; perfect = TRUE;
} else { } else {
if (!session->raw_write_buffer) { if (!session->raw_write_buffer) {
size_t bytes = session->write_codec->implementation->bytes_per_frame * 10; switch_size_t bytes = session->write_codec->implementation->bytes_per_frame * 10;
switch_console_printf(SWITCH_CHANNEL_CONSOLE, switch_console_printf(SWITCH_CHANNEL_CONSOLE,
"Engaging Write Buffer at %d bytes to accomodate %d->%d\n", "Engaging Write Buffer at %u bytes to accomodate %u->%u\n",
bytes, bytes,
write_frame->datalen, session->write_codec->implementation->bytes_per_frame); write_frame->datalen, session->write_codec->implementation->bytes_per_frame);
if ((status = if ((status =
@ -1202,15 +1201,14 @@ SWITCH_DECLARE(switch_status) switch_core_session_write_frame(switch_core_sessio
session->read_codec->codec_interface->interface_name); session->read_codec->codec_interface->interface_name);
write_frame = NULL; write_frame = NULL;
return status; return status;
break;
} }
status = perform_write(session, write_frame, timeout, io_flag, stream_id); status = perform_write(session, write_frame, timeout, io_flag, stream_id);
return status; return status;
} else { } else {
size_t used = switch_buffer_inuse(session->raw_write_buffer); switch_size_t used = switch_buffer_inuse(session->raw_write_buffer);
size_t bytes = session->write_codec->implementation->bytes_per_frame; switch_size_t bytes = session->write_codec->implementation->bytes_per_frame;
size_t frames = (used / bytes); switch_size_t frames = (used / bytes);
@ -1219,7 +1217,7 @@ SWITCH_DECLARE(switch_status) switch_core_session_write_frame(switch_core_sessio
status = SWITCH_STATUS_SUCCESS; status = SWITCH_STATUS_SUCCESS;
if (frames) { if (frames) {
size_t x; switch_size_t x;
for (x = 0; x < frames; x++) { for (x = 0; x < frames; x++) {
if ((session->raw_write_frame.datalen = if ((session->raw_write_frame.datalen =
switch_buffer_read(session->raw_write_buffer, session->raw_write_frame.data, bytes)) != 0) { switch_buffer_read(session->raw_write_buffer, session->raw_write_frame.data, bytes)) != 0) {
@ -1264,7 +1262,6 @@ SWITCH_DECLARE(switch_status) switch_core_session_write_frame(switch_core_sessio
session->read_codec->codec_interface->interface_name); session->read_codec->codec_interface->interface_name);
write_frame = NULL; write_frame = NULL;
return status; return status;
break;
} }
if (session->read_resampler) { if (session->read_resampler) {
@ -1672,13 +1669,12 @@ static void switch_core_standard_on_execute(switch_core_session *session)
static void switch_core_standard_on_loopback(switch_core_session *session) static void switch_core_standard_on_loopback(switch_core_session *session)
{ {
switch_channel_state state;
switch_frame *frame; switch_frame *frame;
int stream_id; int stream_id;
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Standard LOOPBACK\n"); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Standard LOOPBACK\n");
while ((state = switch_channel_get_state(session->channel)) == CS_LOOPBACK) { while (switch_channel_get_state(session->channel) == CS_LOOPBACK) {
for (stream_id = 0; stream_id < session->stream_count; stream_id++) { for (stream_id = 0; stream_id < session->stream_count; stream_id++) {
if (switch_core_session_read_frame(session, &frame, -1, stream_id) == SWITCH_STATUS_SUCCESS) { if (switch_core_session_read_frame(session, &frame, -1, stream_id) == SWITCH_STATUS_SUCCESS) {
switch_core_session_write_frame(session, frame, -1, stream_id); switch_core_session_write_frame(session, frame, -1, stream_id);
@ -1689,6 +1685,7 @@ static void switch_core_standard_on_loopback(switch_core_session *session)
static void switch_core_standard_on_transmit(switch_core_session *session) static void switch_core_standard_on_transmit(switch_core_session *session)
{ {
assert(session != NULL);
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Standard TRANSMIT\n"); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Standard TRANSMIT\n");
} }
@ -1754,7 +1751,6 @@ SWITCH_DECLARE(void) switch_core_session_run(switch_core_session *session)
break; break;
case CS_DONE: case CS_DONE:
continue; continue;
break;
case CS_HANGUP: /* Deactivate and end the thread */ case CS_HANGUP: /* Deactivate and end the thread */
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "(%s) State HANGUP\n", switch_channel_get_name(session->channel)); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "(%s) State HANGUP\n", switch_channel_get_name(session->channel));
if (!driver_state_handler->on_hangup || if (!driver_state_handler->on_hangup ||
@ -2016,6 +2012,7 @@ SWITCH_DECLARE(switch_status) switch_core_hash_init(switch_hash **hash, switch_m
SWITCH_DECLARE(switch_status) switch_core_hash_destroy(switch_hash *hash) SWITCH_DECLARE(switch_status) switch_core_hash_destroy(switch_hash *hash)
{ {
assert(hash != NULL);
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
} }
@ -2088,19 +2085,16 @@ SWITCH_DECLARE(void) switch_core_launch_thread(switch_thread_start_t func, void
static void *SWITCH_THREAD_FUNC switch_core_session_thread(switch_thread *thread, void *obj) static void *SWITCH_THREAD_FUNC switch_core_session_thread(switch_thread *thread, void *obj)
{ {
unsigned int id;
switch_core_session *session = obj; switch_core_session *session = obj;
session->thread = thread; session->thread = thread;
session->id = runtime.session_id++;
id = runtime.session_id++; snprintf(session->name, sizeof(session->name), "%u", session->id);
session->id = id;
snprintf(session->name, sizeof(session->name), "%ld", session->id);
switch_core_hash_insert(runtime.session_table, session->uuid_str, session); switch_core_hash_insert(runtime.session_table, session->uuid_str, session);
switch_core_session_run(session); switch_core_session_run(session);
switch_core_hash_delete(runtime.session_table, session->uuid_str); switch_core_hash_delete(runtime.session_table, session->uuid_str);
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Session %ld (%s) Ended\n", id, switch_channel_get_name(session->channel)); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Session %u (%s) Ended\n", session->id, switch_channel_get_name(session->channel));
switch_core_session_destroy(&session); switch_core_session_destroy(&session);
return NULL; return NULL;
} }
@ -2135,7 +2129,7 @@ SWITCH_DECLARE(void) switch_core_session_launch_thread(switch_core_session *sess
} }
SWITCH_DECLARE(void *) switch_core_alloc(switch_memory_pool *pool, size_t memory) SWITCH_DECLARE(void *) switch_core_alloc(switch_memory_pool *pool, switch_size_t memory)
{ {
void *ptr = NULL; void *ptr = NULL;
assert(pool != NULL); assert(pool != NULL);
@ -2179,7 +2173,7 @@ SWITCH_DECLARE(switch_core_session *) switch_core_session_request(const switch_e
return NULL; return NULL;
} }
switch_channel_init(session->channel, session, CS_NEW, CF_SEND_AUDIO | CF_RECV_AUDIO); switch_channel_init(session->channel, session, CS_NEW, (CF_SEND_AUDIO | CF_RECV_AUDIO));
/* The session *IS* the pool you may not alter it because you have no idea how /* The session *IS* the pool you may not alter it because you have no idea how
its all private it will be passed to the thread run function */ its all private it will be passed to the thread run function */
@ -2222,14 +2216,13 @@ SWITCH_DECLARE(switch_core_session *) switch_core_session_request_by_name(char *
static void core_event_handler(switch_event *event) static void core_event_handler(switch_event *event)
{ {
char buf[1024]; //char buf[1024];
switch (event->event_id) { switch (event->event_id) {
case SWITCH_EVENT_LOG: case SWITCH_EVENT_LOG:
return; return;
break;
default: default:
buf[0] = '\0'; //buf[0] = '\0';
//switch_event_serialize(event, buf, sizeof(buf), NULL); //switch_event_serialize(event, buf, sizeof(buf), NULL);
//switch_console_printf(SWITCH_CHANNEL_CONSOLE, "\nCORE EVENT\n--------------------------------\n%s\n", buf); //switch_console_printf(SWITCH_CHANNEL_CONSOLE, "\nCORE EVENT\n--------------------------------\n%s\n", buf);
break; break;
@ -2293,7 +2286,7 @@ SWITCH_DECLARE(switch_status) switch_core_init(char *console)
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Allocated memory pool. Sessions are %d bytes\n", sizeof(struct switch_core_session)); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Allocated memory pool. Sessions are %u bytes\n", sizeof(struct switch_core_session));
switch_event_init(runtime.memory_pool); switch_event_init(runtime.memory_pool);
assert(runtime.memory_pool != NULL); assert(runtime.memory_pool != NULL);

View File

@ -45,7 +45,7 @@ static switch_hash *CUSTOM_HASH = NULL;
static int THREAD_RUNNING = 0; static int THREAD_RUNNING = 0;
#if 0 #if 0
static void *locked_alloc(size_t len) static void *locked_alloc(switch_size_t len)
{ {
void *mem; void *mem;
@ -146,6 +146,8 @@ static void *SWITCH_THREAD_FUNC switch_event_thread(switch_thread *thread, void
void *pop; void *pop;
int i, len[3] = {0,0,0}; int i, len[3] = {0,0,0};
assert(thread != NULL);
assert(obj == NULL);
assert(POOL_LOCK != NULL); assert(POOL_LOCK != NULL);
assert(RUNTIME_POOL != NULL); assert(RUNTIME_POOL != NULL);
THREAD_RUNNING = 1; THREAD_RUNNING = 1;
@ -161,10 +163,12 @@ static void *SWITCH_THREAD_FUNC switch_event_thread(switch_thread *thread, void
) { ) {
for(i = 0; i < 3; i++) { for(i = 0; i < 3; i++) {
queue = queues[i]; if (len[i]) {
while (queue && switch_queue_trypop(queue, &pop) == SWITCH_STATUS_SUCCESS) { queue = queues[i];
out_event = pop; while (queue && switch_queue_trypop(queue, &pop) == SWITCH_STATUS_SUCCESS) {
switch_event_deliver(&out_event); out_event = pop;
switch_event_deliver(&out_event);
}
} }
} }
@ -361,7 +365,7 @@ SWITCH_DECLARE(switch_status) switch_event_add_header(switch_event *event, switc
header->name = DUP(header_name); header->name = DUP(header_name);
header->value = DUP(data); header->value = DUP(data);
if (((stack = SWITCH_STACK_TOP)) != 0) { if (stack == SWITCH_STACK_TOP) {
header->next = event->headers; header->next = event->headers;
event->headers = header; event->headers = header;
} else { } else {
@ -404,10 +408,9 @@ SWITCH_DECLARE(void) switch_event_destroy(switch_event **event)
for (hp = ep->headers; hp;) { for (hp = ep->headers; hp;) {
this = hp; this = hp;
FREE(hp->name);
FREE(hp->value);
hp = hp->next; hp = hp->next;
FREE(this->name);
FREE(this->value);
} }
FREE(ep->body); FREE(ep->body);
FREE(ep); FREE(ep);
@ -448,9 +451,9 @@ SWITCH_DECLARE(switch_status) switch_event_dup(switch_event **event, switch_even
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
} }
SWITCH_DECLARE(switch_status) switch_event_serialize(switch_event *event, char *buf, size_t buflen, char *fmt, ...) SWITCH_DECLARE(switch_status) switch_event_serialize(switch_event *event, char *buf, switch_size_t buflen, char *fmt, ...)
{ {
size_t len = 0; switch_size_t len = 0;
switch_event_header *hp; switch_event_header *hp;
char *data = NULL, *body = NULL; char *data = NULL, *body = NULL;
int ret = 0; int ret = 0;
@ -507,7 +510,7 @@ SWITCH_DECLARE(switch_status) switch_event_fire_detailed(char *file, char *func,
switch_time_exp_t tm; switch_time_exp_t tm;
char date[80] = ""; char date[80] = "";
size_t retsize; switch_size_t retsize;
assert(BLOCK != NULL); assert(BLOCK != NULL);
assert(RUNTIME_POOL != NULL); assert(RUNTIME_POOL != NULL);

View File

@ -200,7 +200,7 @@ SWITCH_DECLARE(switch_status) switch_ivr_record_file(switch_core_session *sessio
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Raw Codec Activated\n"); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Raw Codec Activated\n");
switch_core_session_set_read_codec(session, &codec); switch_core_session_set_read_codec(session, &codec);
} else { } else {
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Raw Codec Activation Failed %s@%dhz %d channels %dms\n", switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Raw Codec Activation Failed %s@%uhz %u channels %dms\n",
codec_name, fh->samplerate, fh->channels, read_codec->implementation->microseconds_per_frame / 1000); codec_name, fh->samplerate, fh->channels, read_codec->implementation->microseconds_per_frame / 1000);
switch_core_file_close(fh); switch_core_file_close(fh);
return SWITCH_STATUS_GENERR; return SWITCH_STATUS_GENERR;
@ -208,7 +208,7 @@ SWITCH_DECLARE(switch_status) switch_ivr_record_file(switch_core_session *sessio
while(switch_channel_ready(channel)) { while(switch_channel_ready(channel)) {
size_t len; switch_size_t len;
if (dtmf_callback || buf) { if (dtmf_callback || buf) {
/* /*
@ -234,7 +234,7 @@ SWITCH_DECLARE(switch_status) switch_ivr_record_file(switch_core_session *sessio
break; break;
} }
if (!switch_test_flag(fh, SWITCH_FILE_PAUSE)) { if (!switch_test_flag(fh, SWITCH_FILE_PAUSE)) {
len = (size_t) read_frame->datalen / 2; len = (switch_size_t) read_frame->datalen / 2;
switch_core_file_write(fh, read_frame->data, &len); switch_core_file_write(fh, read_frame->data, &len);
} }
} }
@ -257,14 +257,13 @@ SWITCH_DECLARE(switch_status) switch_ivr_play_file(switch_core_session *session,
short abuf[960]; short abuf[960];
char dtmf[128]; char dtmf[128];
int interval = 0, samples = 0; int interval = 0, samples = 0;
size_t len = 0, ilen = 0, olen = 0; switch_size_t len = 0, ilen = 0, olen = 0;
switch_frame write_frame; switch_frame write_frame;
switch_timer timer; switch_timer timer;
switch_core_thread_session thread_session; switch_core_thread_session thread_session;
switch_codec codec; switch_codec codec;
switch_memory_pool *pool = switch_core_session_get_pool(session); switch_memory_pool *pool = switch_core_session_get_pool(session);
char *codec_name; char *codec_name;
int x;
int stream_id; int stream_id;
switch_status status = SWITCH_STATUS_SUCCESS; switch_status status = SWITCH_STATUS_SUCCESS;
switch_file_handle lfh; switch_file_handle lfh;
@ -290,7 +289,7 @@ SWITCH_DECLARE(switch_status) switch_ivr_play_file(switch_core_session *session,
write_frame.buflen = sizeof(abuf); write_frame.buflen = sizeof(abuf);
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "OPEN FILE %s %dhz %d channels\n", file, fh->samplerate, fh->channels); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "OPEN FILE %s %uhz %u channels\n", file, fh->samplerate, fh->channels);
interval = 20; interval = 20;
samples = (fh->samplerate / 50) * fh->channels; samples = (fh->samplerate / 50) * fh->channels;
@ -308,7 +307,7 @@ SWITCH_DECLARE(switch_status) switch_ivr_play_file(switch_core_session *session,
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Raw Codec Activated\n"); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Raw Codec Activated\n");
write_frame.codec = &codec; write_frame.codec = &codec;
} else { } else {
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Raw Codec Activation Failed %s@%dhz %d channels %dms\n", switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Raw Codec Activation Failed %s@%uhz %u channels %dms\n",
codec_name, fh->samplerate, fh->channels, interval); codec_name, fh->samplerate, fh->channels, interval);
switch_core_file_close(fh); switch_core_file_close(fh);
return SWITCH_STATUS_GENERR; return SWITCH_STATUS_GENERR;
@ -321,7 +320,7 @@ SWITCH_DECLARE(switch_status) switch_ivr_play_file(switch_core_session *session,
switch_core_file_close(fh); switch_core_file_close(fh);
return SWITCH_STATUS_GENERR; return SWITCH_STATUS_GENERR;
} }
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "setup timer success %d bytes per %d ms!\n", len, interval); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "setup timer success %u bytes per %d ms!\n", len, interval);
} }
write_frame.rate = fh->samplerate; write_frame.rate = fh->samplerate;
@ -389,9 +388,9 @@ SWITCH_DECLARE(switch_status) switch_ivr_play_file(switch_core_session *session,
if (fh->speed && do_speed) { if (fh->speed && do_speed) {
float factor = 0.25f * abs(fh->speed); float factor = 0.25f * abs(fh->speed);
size_t newlen, supplement, step; switch_size_t newlen, supplement, step;
short *bp = write_frame.data; short *bp = write_frame.data;
size_t wrote = 0; switch_size_t wrote = 0;
if (!fh->audio_buffer) { if (!fh->audio_buffer) {
switch_buffer_create(fh->memory_pool, &fh->audio_buffer, SWITCH_RECCOMMENDED_BUFFER_SIZE); switch_buffer_create(fh->memory_pool, &fh->audio_buffer, SWITCH_RECCOMMENDED_BUFFER_SIZE);
@ -418,7 +417,7 @@ SWITCH_DECLARE(switch_status) switch_ivr_play_file(switch_core_session *session,
} }
} }
if (wrote < newlen) { if (wrote < newlen) {
size_t r = newlen - wrote; switch_size_t r = newlen - wrote;
switch_buffer_write(fh->audio_buffer, bp, r*2); switch_buffer_write(fh->audio_buffer, bp, r*2);
wrote += r; wrote += r;
} }
@ -443,7 +442,7 @@ SWITCH_DECLARE(switch_status) switch_ivr_play_file(switch_core_session *session,
} }
} }
if (timer_name) { if (timer_name) {
if ((x = switch_core_timer_next(&timer)) < 0) { if (switch_core_timer_next(&timer) < 0) {
break; break;
} }
} else { /* time off the channel (if you must) */ } else { /* time off the channel (if you must) */
@ -475,7 +474,7 @@ SWITCH_DECLARE(switch_status) switch_ivr_speak_text(switch_core_session *session
char *tts_name, char *tts_name,
char *voice_name, char *voice_name,
char *timer_name, char *timer_name,
size_t rate, switch_size_t rate,
switch_dtmf_callback_function dtmf_callback, switch_dtmf_callback_function dtmf_callback,
char *text, char *text,
void *buf, void *buf,
@ -485,9 +484,9 @@ SWITCH_DECLARE(switch_status) switch_ivr_speak_text(switch_core_session *session
short abuf[960]; short abuf[960];
char dtmf[128]; char dtmf[128];
int interval = 0; int interval = 0;
size_t samples = 0; switch_size_t samples = 0;
size_t len = 0; switch_size_t len = 0;
size_t ilen = 0; switch_size_t ilen = 0;
switch_frame write_frame; switch_frame write_frame;
switch_timer timer; switch_timer timer;
switch_core_thread_session thread_session; switch_core_thread_session thread_session;
@ -501,7 +500,7 @@ SWITCH_DECLARE(switch_status) switch_ivr_speak_text(switch_core_session *session
switch_status status = SWITCH_STATUS_SUCCESS; switch_status status = SWITCH_STATUS_SUCCESS;
switch_speech_handle sh; switch_speech_handle sh;
switch_speech_flag flags = SWITCH_SPEECH_FLAG_TTS; uint32_t flags = SWITCH_SPEECH_FLAG_TTS;
memset(&sh, 0, sizeof(sh)); memset(&sh, 0, sizeof(sh));
@ -543,8 +542,8 @@ SWITCH_DECLARE(switch_status) switch_ivr_speak_text(switch_core_session *session
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Raw Codec Activated\n"); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Raw Codec Activated\n");
write_frame.codec = &codec; write_frame.codec = &codec;
} else { } else {
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Raw Codec Activation Failed %s@%dhz %d channels %dms\n", switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Raw Codec Activation Failed %s@%uhz 1 channel %dms\n",
codec_name, rate, 1, interval); codec_name, rate, interval);
flags = 0; flags = 0;
switch_core_speech_close(&sh, &flags); switch_core_speech_close(&sh, &flags);
return SWITCH_STATUS_GENERR; return SWITCH_STATUS_GENERR;
@ -558,7 +557,7 @@ SWITCH_DECLARE(switch_status) switch_ivr_speak_text(switch_core_session *session
switch_core_speech_close(&sh, &flags); switch_core_speech_close(&sh, &flags);
return SWITCH_STATUS_GENERR; return SWITCH_STATUS_GENERR;
} }
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "setup timer success %d bytes per %d ms!\n", len, interval); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "setup timer success %u bytes per %d ms!\n", len, interval);
} }
flags = 0; flags = 0;
@ -692,6 +691,7 @@ static void *audio_bridge_thread(switch_thread *thread, void *obj)
switch_dtmf_callback_function dtmf_callback; switch_dtmf_callback_function dtmf_callback;
void *user_data; void *user_data;
assert(thread != NULL);
switch_channel *chan_a, *chan_b; switch_channel *chan_a, *chan_b;
switch_frame *read_frame; switch_frame *read_frame;
switch_core_session *session_a, *session_b; switch_core_session *session_a, *session_b;
@ -700,7 +700,7 @@ static void *audio_bridge_thread(switch_thread *thread, void *obj)
session_b = data->objs[1]; session_b = data->objs[1];
stream_id_p = data->objs[2]; stream_id_p = data->objs[2];
dtmf_callback = data->objs[3]; dtmf_callback = (switch_dtmf_callback_function) data->objs[3];
user_data = data->objs[4]; user_data = data->objs[4];
his_thread = data->objs[5]; his_thread = data->objs[5];
@ -723,7 +723,6 @@ static void *audio_bridge_thread(switch_thread *thread, void *obj)
case CS_HANGUP: case CS_HANGUP:
data->running = -1; data->running = -1;
continue; continue;
break;
default: default:
break; break;
} }
@ -762,7 +761,7 @@ static void *audio_bridge_thread(switch_thread *thread, void *obj)
if (switch_core_session_read_frame(session_a, &read_frame, -1, stream_id) == SWITCH_STATUS_SUCCESS if (switch_core_session_read_frame(session_a, &read_frame, -1, stream_id) == SWITCH_STATUS_SUCCESS
&& read_frame->datalen) { && read_frame->datalen) {
if (switch_core_session_write_frame(session_b, read_frame, -1, stream_id) != SWITCH_STATUS_SUCCESS) { if (switch_core_session_write_frame(session_b, read_frame, -1, stream_id) != SWITCH_STATUS_SUCCESS) {
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "write: %s Bad Frame....[%d] Bubye!\n", switch_channel_get_name(chan_b), read_frame->datalen); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "write: %s Bad Frame....[%u] Bubye!\n", switch_channel_get_name(chan_b), read_frame->datalen);
data->running = -1; data->running = -1;
} }
} else { } else {

View File

@ -32,18 +32,26 @@
#include <switch.h> #include <switch.h>
typedef switch_status (*switch_module_load_t) (switch_loadable_module_interface **, char *);
typedef switch_status (*switch_module_reload_t) (void);
typedef switch_status (*switch_module_pause_t) (void);
typedef switch_status (*switch_module_resume_t) (void);
typedef switch_status (*switch_module_status_t) (void);
typedef switch_status (*switch_module_runtime_t) (void);
typedef switch_status (*switch_module_shutdown_t) (void);
struct switch_loadable_module { struct switch_loadable_module {
char *filename; char *filename;
const switch_loadable_module_interface *interface; const switch_loadable_module_interface *interface;
void *lib; void *lib;
switch_status (*switch_module_load) (switch_loadable_module_interface **, char *); switch_module_load_t switch_module_load;
switch_status (*switch_module_reload) (void); switch_module_reload_t switch_module_reload;
switch_status (*switch_module_pause) (void); switch_module_pause_t switch_module_pause;
switch_status (*switch_module_resume) (void); switch_module_resume_t switch_module_resume;
switch_status (*switch_module_status) (void); switch_module_status_t switch_module_status;
switch_status (*switch_module_runtime) (void); switch_module_runtime_t switch_module_runtime;
switch_status (*switch_module_shutdown) (void); switch_module_shutdown_t switch_module_shutdown;
}; };
struct switch_loadable_module_container { struct switch_loadable_module_container {
@ -64,6 +72,9 @@ static struct switch_loadable_module_container loadable_modules;
static void *switch_loadable_module_exec(switch_thread *thread, void *obj) static void *switch_loadable_module_exec(switch_thread *thread, void *obj)
{ {
assert(thread != NULL);
switch_status status = SWITCH_STATUS_SUCCESS; switch_status status = SWITCH_STATUS_SUCCESS;
switch_core_thread_session *ts = obj; switch_core_thread_session *ts = obj;
switch_loadable_module *module = ts->objs[0]; switch_loadable_module *module = ts->objs[0];
@ -85,6 +96,9 @@ static void *switch_loadable_module_exec(switch_thread *thread, void *obj)
return NULL; return NULL;
} }
typedef switch_status (*switch_load_fp_t)(switch_loadable_module_interface **, char *);
static switch_status switch_loadable_module_load_file(char *filename, switch_memory_pool *pool, static switch_status switch_loadable_module_load_file(char *filename, switch_memory_pool *pool,
switch_loadable_module **new_module) switch_loadable_module **new_module)
{ {
@ -92,7 +106,8 @@ static switch_status switch_loadable_module_load_file(char *filename, switch_mem
apr_dso_handle_t *dso = NULL; apr_dso_handle_t *dso = NULL;
apr_status_t status = SWITCH_STATUS_SUCCESS; apr_status_t status = SWITCH_STATUS_SUCCESS;
apr_dso_handle_sym_t function_handle = NULL; apr_dso_handle_sym_t function_handle = NULL;
switch_status (*load_func_ptr) (switch_loadable_module_interface **, char *) = NULL; //switch_status (*load_func_ptr) (switch_loadable_module_interface **, char *) = NULL;
switch_load_fp_t load_func_ptr = NULL;
int loading = 1; int loading = 1;
const char *err = NULL; const char *err = NULL;
switch_loadable_module_interface *interface = NULL; switch_loadable_module_interface *interface = NULL;
@ -111,7 +126,7 @@ static switch_status switch_loadable_module_load_file(char *filename, switch_mem
} }
status = apr_dso_sym(&function_handle, dso, "switch_module_load"); status = apr_dso_sym(&function_handle, dso, "switch_module_load");
load_func_ptr = function_handle; load_func_ptr = (switch_load_fp_t) function_handle;
if (load_func_ptr == NULL) { if (load_func_ptr == NULL) {
err = "Cannot Load"; err = "Cannot Load";
@ -142,27 +157,27 @@ static switch_status switch_loadable_module_load_file(char *filename, switch_mem
module->switch_module_load = load_func_ptr; module->switch_module_load = load_func_ptr;
if ((status = apr_dso_sym(&function_handle, dso, "switch_module_reload")) == APR_SUCCESS) { if ((status = apr_dso_sym(&function_handle, dso, "switch_module_reload")) == APR_SUCCESS) {
module->switch_module_reload = function_handle; module->switch_module_reload = (switch_module_reload_t) function_handle;
} }
if ((status = apr_dso_sym(&function_handle, dso, "switch_module_pause")) == APR_SUCCESS) { if ((status = apr_dso_sym(&function_handle, dso, "switch_module_pause")) == APR_SUCCESS) {
module->switch_module_pause = function_handle; module->switch_module_pause = (switch_module_pause_t) function_handle;
} }
if ((status = apr_dso_sym(&function_handle, dso, "switch_module_resume")) == APR_SUCCESS) { if ((status = apr_dso_sym(&function_handle, dso, "switch_module_resume")) == APR_SUCCESS) {
module->switch_module_resume = function_handle; module->switch_module_resume = (switch_module_resume_t) function_handle;
} }
if ((status = apr_dso_sym(&function_handle, dso, "switch_module_status")) == APR_SUCCESS) { if ((status = apr_dso_sym(&function_handle, dso, "switch_module_status")) == APR_SUCCESS) {
module->switch_module_status = function_handle; module->switch_module_status = (switch_module_status_t) function_handle;
} }
if ((status = apr_dso_sym(&function_handle, dso, "switch_module_shutdown")) == APR_SUCCESS) { if ((status = apr_dso_sym(&function_handle, dso, "switch_module_shutdown")) == APR_SUCCESS) {
module->switch_module_shutdown = function_handle; module->switch_module_shutdown = (switch_module_shutdown_t) function_handle;
} }
if ((status = apr_dso_sym(&function_handle, dso, "switch_module_runtime")) == APR_SUCCESS) { if ((status = apr_dso_sym(&function_handle, dso, "switch_module_runtime")) == APR_SUCCESS) {
module->switch_module_runtime = function_handle; module->switch_module_runtime = (switch_module_runtime_t) function_handle;
} }
module->lib = dso; module->lib = dso;
@ -180,7 +195,7 @@ static switch_status switch_loadable_module_load_file(char *filename, switch_mem
static void process_module_file(char *dir, char *fname) static void process_module_file(char *dir, char *fname)
{ {
size_t len = 0; switch_size_t len = 0;
char *path; char *path;
char *file; char *file;
switch_loadable_module *new_module = NULL; switch_loadable_module *new_module = NULL;
@ -202,11 +217,15 @@ static void process_module_file(char *dir, char *fname)
path = switch_core_strdup(loadable_modules.pool, file); path = switch_core_strdup(loadable_modules.pool, file);
} else { } else {
if (strchr(file, '.')) { if (strchr(file, '.')) {
len = strlen(dir) + strlen(file) + 4; len = strlen(dir);
len += strlen(file);
len += 4;
path = (char *) switch_core_alloc(loadable_modules.pool, len); path = (char *) switch_core_alloc(loadable_modules.pool, len);
snprintf(path, len, "%s%s%s", dir, SWITCH_PATH_SEPARATOR, file); snprintf(path, len, "%s%s%s", dir, SWITCH_PATH_SEPARATOR, file);
} else { } else {
len = strlen(dir) + strlen(file) + 8; len = strlen(dir);
len += strlen(file);
len += 8;
path = (char *) switch_core_alloc(loadable_modules.pool, len); path = (char *) switch_core_alloc(loadable_modules.pool, len);
snprintf(path, len, "%s%s%s%s", dir, SWITCH_PATH_SEPARATOR, file, ext); snprintf(path, len, "%s%s%s%s", dir, SWITCH_PATH_SEPARATOR, file, ext);
} }
@ -330,7 +349,6 @@ static void switch_loadable_module_path_init()
SWITCH_DECLARE(switch_status) switch_loadable_module_init() SWITCH_DECLARE(switch_status) switch_loadable_module_init()
{ {
char *ptr = NULL;
apr_finfo_t finfo = {0}; apr_finfo_t finfo = {0};
apr_dir_t *module_dir_handle = NULL; apr_dir_t *module_dir_handle = NULL;
apr_int32_t finfo_flags = APR_FINFO_DIRENT | APR_FINFO_TYPE | APR_FINFO_NAME; apr_int32_t finfo_flags = APR_FINFO_DIRENT | APR_FINFO_TYPE | APR_FINFO_NAME;
@ -424,7 +442,7 @@ SWITCH_DECLARE(switch_status) switch_loadable_module_init()
fname = finfo.name; fname = finfo.name;
} }
if ((ptr = (char *) fname) == 0) { if (!fname) {
continue; continue;
} }
@ -451,10 +469,10 @@ SWITCH_DECLARE(void) switch_loadable_module_shutdown(void)
module = (switch_loadable_module *) val; module = (switch_loadable_module *) val;
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Checking %s\t", module->interface->module_name); switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Checking %s\t", module->interface->module_name);
if (module->switch_module_shutdown) { if (module->switch_module_shutdown) {
switch_console_printf(SWITCH_CHANNEL_CONSOLE_CLEAN, "(yes)\n", module->interface->module_name); switch_console_printf(SWITCH_CHANNEL_CONSOLE_CLEAN, "(yes)\n");
module->switch_module_shutdown(); module->switch_module_shutdown();
} else { } else {
switch_console_printf(SWITCH_CHANNEL_CONSOLE_CLEAN, "(no)\n", module->interface->module_name); switch_console_printf(SWITCH_CHANNEL_CONSOLE_CLEAN, "(no)\n");
} }
} }
@ -524,7 +542,7 @@ SWITCH_DECLARE(int) switch_loadable_module_get_codecs(switch_memory_pool *pool,
} }
SWITCH_DECLARE(int) switch_loadable_module_get_codecs_sorted(switch_memory_pool *pool, switch_codec_interface **array, SWITCH_DECLARE(int) switch_loadable_module_get_codecs_sorted(switch_codec_interface **array,
int arraylen, char **prefs, int preflen) int arraylen, char **prefs, int preflen)
{ {
int x, i = 0; int x, i = 0;
@ -542,7 +560,7 @@ SWITCH_DECLARE(int) switch_loadable_module_get_codecs_sorted(switch_memory_pool
return i; return i;
} }
SWITCH_DECLARE(switch_status) switch_api_execute(char *cmd, char *arg, char *retbuf, size_t len) SWITCH_DECLARE(switch_status) switch_api_execute(char *cmd, char *arg, char *retbuf, switch_size_t len)
{ {
switch_api_interface *api; switch_api_interface *api;
switch_status status; switch_status status;

View File

@ -1,58 +0,0 @@
/*
* FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
* Copyright (C) 2005/2006, Anthony Minessale II <anthmct@yahoo.com>
*
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
*
* The Initial Developer of the Original Code is
* Anthony Minessale II <anthmct@yahoo.com>
* Portions created by the Initial Developer are Copyright (C)
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* Anthony Minessale II <anthmct@yahoo.com>
*
*
* switch_mutex.c -- Mutex Locking
*
*/
#include <switch_mutex.h>
SWITCH_DECLARE(switch_status) switch_mutex_init(switch_mutex_t **lock, switch_lock_flag flags, switch_memory_pool *pool)
{
return (apr_thread_mutex_create(lock, flags, pool) == APR_SUCCESS) ? SWITCH_STATUS_SUCCESS : SWITCH_STATUS_GENERR;
}
SWITCH_DECLARE(switch_status) switch_mutex_destroy(switch_mutex_t *lock)
{
return apr_thread_mutex_destroy(lock);
}
SWITCH_DECLARE(switch_status) switch_mutex_lock(switch_mutex_t *lock)
{
return apr_thread_mutex_lock(lock);
}
SWITCH_DECLARE(switch_status) switch_mutex_unlock(switch_mutex_t *lock)
{
return apr_thread_mutex_unlock(lock);
}
SWITCH_DECLARE(switch_status) switch_mutex_trylock(switch_mutex_t *lock)
{
return apr_thread_mutex_trylock(lock);
}

View File

@ -48,10 +48,11 @@
SWITCH_DECLARE(switch_status) switch_resample_create(switch_audio_resampler **new_resampler, SWITCH_DECLARE(switch_status) switch_resample_create(switch_audio_resampler **new_resampler,
int from_rate, int from_rate,
size_t from_size, switch_size_t from_size,
int to_rate, size_t to_size, switch_memory_pool *pool) int to_rate, switch_size_t to_size, switch_memory_pool *pool)
{ {
switch_audio_resampler *resampler; switch_audio_resampler *resampler;
double lto_rate, lfrom_rate;
if ((resampler = switch_core_alloc(pool, sizeof(*resampler))) == 0) { if ((resampler = switch_core_alloc(pool, sizeof(*resampler))) == 0) {
return SWITCH_STATUS_MEMERR; return SWITCH_STATUS_MEMERR;
@ -59,7 +60,9 @@ SWITCH_DECLARE(switch_status) switch_resample_create(switch_audio_resampler **ne
resampler->from_rate = from_rate; resampler->from_rate = from_rate;
resampler->to_rate = to_rate; resampler->to_rate = to_rate;
resampler->factor = ((double) resampler->to_rate / (double) resampler->from_rate); lto_rate = (double) resampler->to_rate;
lfrom_rate = (double) resampler->from_rate;
resampler->factor = (lto_rate / lfrom_rate);
resampler->resampler = resample_open(QUALITY, resampler->factor, resampler->factor); resampler->resampler = resample_open(QUALITY, resampler->factor, resampler->factor);
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Activate Resampler %d->%d %f\n", resampler->from_rate, switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Activate Resampler %d->%d %f\n", resampler->from_rate,
@ -103,9 +106,9 @@ SWITCH_DECLARE(void) switch_resample_destroy(switch_audio_resampler *resampler)
} }
SWITCH_DECLARE(size_t) switch_float_to_short(float *f, short *s, size_t len) SWITCH_DECLARE(switch_size_t) switch_float_to_short(float *f, short *s, switch_size_t len)
{ {
size_t i; switch_size_t i;
float ft; float ft;
for (i = 0; i < len; i++) { for (i = 0; i < len; i++) {
ft = f[i] * NORMFACT; ft = f[i] * NORMFACT;

View File

@ -36,16 +36,12 @@ SWITCH_DECLARE(char *) switch_priority_name(switch_priority_t priority)
switch(priority) { /*lol*/ switch(priority) { /*lol*/
case SWITCH_PRIORITY_NORMAL: case SWITCH_PRIORITY_NORMAL:
return "NORMAL"; return "NORMAL";
break;
case SWITCH_PRIORITY_LOW: case SWITCH_PRIORITY_LOW:
return "LOW"; return "LOW";
break;
case SWITCH_PRIORITY_HIGH: case SWITCH_PRIORITY_HIGH:
return "HIGH"; return "HIGH";
break;
default: default:
return "INVALID"; return "INVALID";
break;
} }
} }
@ -53,19 +49,24 @@ static char RFC2833_CHARS[] = "0123456789*#ABCDF";
SWITCH_DECLARE(char) switch_rfc2833_to_char(int event) SWITCH_DECLARE(char) switch_rfc2833_to_char(int event)
{ {
return (event > -1 && event < sizeof(RFC2833_CHARS)) ? RFC2833_CHARS[event] : '\0'; if (event > -1 && event < sizeof(RFC2833_CHARS)) {
return RFC2833_CHARS[event];
}
return '\0';
} }
SWITCH_DECLARE(unsigned char) switch_char_to_rfc2833(char key) SWITCH_DECLARE(unsigned char) switch_char_to_rfc2833(char key)
{ {
char *c; char *c;
unsigned char counter = 0;
for (c = RFC2833_CHARS; *c ; c++) { for (c = RFC2833_CHARS; *c ; c++) {
if (*c == key) { if (*c == key) {
return (unsigned char)(c - RFC2833_CHARS); return counter;
} }
} counter++;
return (unsigned char)-1; }
return '\0';
} }
SWITCH_DECLARE(unsigned int) switch_separate_string(char *buf, char delim, char **array, int arraylen) SWITCH_DECLARE(unsigned int) switch_separate_string(char *buf, char delim, char **array, int arraylen)
@ -123,10 +124,9 @@ SWITCH_DECLARE(switch_status) switch_socket_create_pollfd(switch_pollfd_t *poll,
switch_int16_t flags, switch_memory_pool *pool) switch_int16_t flags, switch_memory_pool *pool)
{ {
switch_pollset_t *pollset; switch_pollset_t *pollset;
switch_status status;
if ((status = switch_pollset_create(&pollset, 1, pool, flags)) != SWITCH_STATUS_SUCCESS) { if (switch_pollset_create(&pollset, 1, pool, flags) != SWITCH_STATUS_SUCCESS) {
return status; return SWITCH_STATUS_GENERR;
} }
poll->desc_type = SWITCH_POLL_SOCKET; poll->desc_type = SWITCH_POLL_SOCKET;
@ -134,16 +134,19 @@ SWITCH_DECLARE(switch_status) switch_socket_create_pollfd(switch_pollfd_t *poll,
poll->desc.s = sock; poll->desc.s = sock;
poll->client_data = sock; poll->client_data = sock;
return switch_pollset_add(pollset, poll); if (switch_pollset_add(pollset, poll) != SWITCH_STATUS_SUCCESS) {
return SWITCH_STATUS_GENERR;
}
return SWITCH_STATUS_SUCCESS;
} }
SWITCH_DECLARE(int) switch_socket_waitfor(switch_pollfd_t *poll, int ms) SWITCH_DECLARE(int) switch_socket_waitfor(switch_pollfd_t *poll, int ms)
{ {
switch_status status;
int nsds = 0; int nsds = 0;
if ((status = switch_poll(poll, 1, &nsds, ms)) != SWITCH_STATUS_SUCCESS) { if (switch_poll(poll, 1, &nsds, ms) != SWITCH_STATUS_SUCCESS) {
return -1; return -1;
} }