[asterisk-commits] russell: branch russell/chan_console r69707 - in /team/russell/chan_console: ...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Jun 18 11:38:09 CDT 2007


Author: russell
Date: Mon Jun 18 11:38:08 2007
New Revision: 69707

URL: http://svn.digium.com/view/asterisk?view=rev&rev=69707
Log:
Merged revisions 69703,69705 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

................
r69703 | russell | 2007-06-18 11:35:51 -0500 (Mon, 18 Jun 2007) | 14 lines

Merged revisions 69702 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r69702 | russell | 2007-06-18 11:35:02 -0500 (Mon, 18 Jun 2007) | 6 lines

To prevent 92138749238754 more reports of "I have unixodbc installed, but
still can't build *_odbc.so!", check for ltdl directly, instead of just listing
it as another library to include in the unixodbc check in the configure script.
This also makes ltdl show up as a dependency in menuselect so people know what
to go install.  (related to issue #9989, patch by me)

........

................
r69705 | file | 2007-06-18 11:37:14 -0500 (Mon, 18 Jun 2007) | 2 lines

Few more rwlist conversions... why not.

................

Modified:
    team/russell/chan_console/   (props changed)
    team/russell/chan_console/apps/app_voicemail.c
    team/russell/chan_console/build_tools/menuselect-deps.in
    team/russell/chan_console/cdr/cdr_odbc.c
    team/russell/chan_console/configure
    team/russell/chan_console/configure.ac
    team/russell/chan_console/funcs/func_odbc.c
    team/russell/chan_console/include/asterisk/autoconfig.h.in
    team/russell/chan_console/main/asterisk.c
    team/russell/chan_console/main/cdr.c
    team/russell/chan_console/main/dnsmgr.c
    team/russell/chan_console/res/res_config_odbc.c
    team/russell/chan_console/res/res_odbc.c

Propchange: team/russell/chan_console/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.

Propchange: team/russell/chan_console/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Mon Jun 18 11:38:08 2007
@@ -1,1 +1,1 @@
-/trunk:1-69698
+/trunk:1-69705

Modified: team/russell/chan_console/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/team/russell/chan_console/apps/app_voicemail.c?view=diff&rev=69707&r1=69706&r2=69707
==============================================================================
--- team/russell/chan_console/apps/app_voicemail.c (original)
+++ team/russell/chan_console/apps/app_voicemail.c Mon Jun 18 11:38:08 2007
@@ -48,6 +48,7 @@
 <category name="MENUSELECT_OPTS_app_voicemail" displayname="Voicemail Build Options" positive_output="yes" remove_on_change="apps/app_voicemail.o">
 	<member name="ODBC_STORAGE" displayname="Storage of Voicemail using ODBC">
 		<depend>unixodbc</depend>
+		<depend>ltdl</depend>
 		<conflict>IMAP_STORAGE</conflict>
 		<defaultenabled>no</defaultenabled>
 	</member>

Modified: team/russell/chan_console/build_tools/menuselect-deps.in
URL: http://svn.digium.com/view/asterisk/team/russell/chan_console/build_tools/menuselect-deps.in?view=diff&rev=69707&r1=69706&r2=69707
==============================================================================
--- team/russell/chan_console/build_tools/menuselect-deps.in (original)
+++ team/russell/chan_console/build_tools/menuselect-deps.in Mon Jun 18 11:38:08 2007
@@ -10,6 +10,7 @@
 IMAP_TK=@PBX_IMAP_TK@
 IXJUSER=@PBX_IXJUSER@
 KDE=@PBX_KDE@
+LTDL=@PBX_LTDL@
 NBS=@PBX_NBS@
 NETSNMP=@PBX_NETSNMP@
 NEWT=@PBX_NEWT@

Modified: team/russell/chan_console/cdr/cdr_odbc.c
URL: http://svn.digium.com/view/asterisk/team/russell/chan_console/cdr/cdr_odbc.c?view=diff&rev=69707&r1=69706&r2=69707
==============================================================================
--- team/russell/chan_console/cdr/cdr_odbc.c (original)
+++ team/russell/chan_console/cdr/cdr_odbc.c Mon Jun 18 11:38:08 2007
@@ -30,6 +30,7 @@
 
 /*** MODULEINFO
 	<depend>unixodbc</depend>
+	<depend>ltdl</depend>
  ***/
 
 #include "asterisk.h"

Modified: team/russell/chan_console/configure
URL: http://svn.digium.com/view/asterisk/team/russell/chan_console/configure?view=diff&rev=69707&r1=69706&r2=69707
==============================================================================
--- team/russell/chan_console/configure (original)
+++ team/russell/chan_console/configure Mon Jun 18 11:38:08 2007
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.ac Revision: 66722 .
+# From configure.ac Revision: 67059 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.61.
 #
@@ -765,6 +765,10 @@
 KDE_INCLUDE
 KDE_DIR
 PBX_KDE
+LTDL_LIB
+LTDL_INCLUDE
+LTDL_DIR
+PBX_LTDL
 MISDN_LIB
 MISDN_INCLUDE
 MISDN_DIR
@@ -1537,6 +1541,7 @@
   --with-imap=PATH        use UW IMAP Toolkit files in PATH
   --with-isdnnet=PATH     use ISDN4Linux Library files in PATH
   --with-kde=PATH         use KDE files in PATH
+  --with-ltdl=PATH        use libtool files in PATH
   --with-misdn=PATH       use mISDN User Library files in PATH
   --with-nbs=PATH         use Network Broadcast Sound files in PATH
   --with-ncurses=PATH     use ncurses files in PATH
@@ -7985,6 +7990,34 @@
 fi
 
 PBX_KDE=0
+
+
+
+
+
+
+LTDL_DESCRIP="libtool"
+LTDL_OPTION="ltdl"
+
+# Check whether --with-ltdl was given.
+if test "${with_ltdl+set}" = set; then
+  withval=$with_ltdl;
+case ${withval} in
+     n|no)
+     USE_LTDL=no
+     ;;
+     y|ye|yes)
+     ac_mandatory_list="${ac_mandatory_list} LTDL"
+     ;;
+     *)
+     LTDL_DIR="${withval}"
+     ac_mandatory_list="${ac_mandatory_list} LTDL"
+     ;;
+esac
+
+fi
+
+PBX_LTDL=0
 
 
 
@@ -19336,6 +19369,398 @@
    fi
 fi
 
+# Needed by unixodbc
+
+if test "x${PBX_LTDL}" != "x1" -a "${USE_LTDL}" != "no"; then
+   pbxlibdir=""
+   if test "x${LTDL_DIR}" != "x"; then
+      if test -d ${LTDL_DIR}/lib; then
+      	 pbxlibdir="-L${LTDL_DIR}/lib"
+      else
+      	 pbxlibdir="-L${LTDL_DIR}"
+      fi
+   fi
+   pbxfuncname="lt_dlinit"
+   if test "x${pbxfuncname}" = "x" ; then   # empty lib, assume only headers
+      AST_LTDL_FOUND=yes
+   else
+      as_ac_Lib=`echo "ac_cv_lib_ltdl_${pbxfuncname}" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ${pbxfuncname} in -lltdl" >&5
+echo $ECHO_N "checking for ${pbxfuncname} in -lltdl... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lltdl ${pbxlibdir}  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ${pbxfuncname} ();
+int
+main ()
+{
+return ${pbxfuncname} ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  AST_LTDL_FOUND=yes
+else
+  AST_LTDL_FOUND=no
+fi
+
+   fi
+
+   if test "${AST_LTDL_FOUND}" = "yes"; then
+      LTDL_LIB="-lltdl "
+      LTDL_HEADER_FOUND="1"
+      if test "x${LTDL_DIR}" != "x"; then
+         LTDL_LIB="${pbxlibdir} ${LTDL_LIB}"
+	 LTDL_INCLUDE="-I${LTDL_DIR}/include"
+	 saved_cppflags="${CPPFLAGS}"
+	 CPPFLAGS="${CPPFLAGS} -I${LTDL_DIR}/include"
+	 if test "xltdl.h" != "x" ; then
+	    as_ac_Header=`echo "ac_cv_header_${LTDL_DIR}/include/ltdl.h" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for ${LTDL_DIR}/include/ltdl.h" >&5
+echo $ECHO_N "checking for ${LTDL_DIR}/include/ltdl.h... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking ${LTDL_DIR}/include/ltdl.h usability" >&5
+echo $ECHO_N "checking ${LTDL_DIR}/include/ltdl.h usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <${LTDL_DIR}/include/ltdl.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking ${LTDL_DIR}/include/ltdl.h presence" >&5
+echo $ECHO_N "checking ${LTDL_DIR}/include/ltdl.h presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <${LTDL_DIR}/include/ltdl.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: ${LTDL_DIR}/include/ltdl.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: ${LTDL_DIR}/include/ltdl.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: ${LTDL_DIR}/include/ltdl.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: ${LTDL_DIR}/include/ltdl.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: ${LTDL_DIR}/include/ltdl.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: ${LTDL_DIR}/include/ltdl.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: ${LTDL_DIR}/include/ltdl.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: ${LTDL_DIR}/include/ltdl.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: ${LTDL_DIR}/include/ltdl.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: ${LTDL_DIR}/include/ltdl.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: ${LTDL_DIR}/include/ltdl.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: ${LTDL_DIR}/include/ltdl.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: ${LTDL_DIR}/include/ltdl.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: ${LTDL_DIR}/include/ltdl.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: ${LTDL_DIR}/include/ltdl.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: ${LTDL_DIR}/include/ltdl.h: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for ${LTDL_DIR}/include/ltdl.h" >&5
+echo $ECHO_N "checking for ${LTDL_DIR}/include/ltdl.h... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  LTDL_HEADER_FOUND=1
+else
+  LTDL_HEADER_FOUND=0
+fi
+
+
+	 fi
+	 CPPFLAGS="${saved_cppflags}"
+      else
+	 if test "xltdl.h" != "x" ; then
+            if test "${ac_cv_header_ltdl_h+set}" = set; then
+  { echo "$as_me:$LINENO: checking for ltdl.h" >&5
+echo $ECHO_N "checking for ltdl.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_ltdl_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_ltdl_h" >&5
+echo "${ECHO_T}$ac_cv_header_ltdl_h" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking ltdl.h usability" >&5
+echo $ECHO_N "checking ltdl.h usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <ltdl.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking ltdl.h presence" >&5
+echo $ECHO_N "checking ltdl.h presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ltdl.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: ltdl.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: ltdl.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: ltdl.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: ltdl.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: ltdl.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: ltdl.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: ltdl.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: ltdl.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: ltdl.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: ltdl.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: ltdl.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: ltdl.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: ltdl.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: ltdl.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: ltdl.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: ltdl.h: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for ltdl.h" >&5
+echo $ECHO_N "checking for ltdl.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_ltdl_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_ltdl_h=$ac_header_preproc
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_ltdl_h" >&5
+echo "${ECHO_T}$ac_cv_header_ltdl_h" >&6; }
+
+fi
+if test $ac_cv_header_ltdl_h = yes; then
+  LTDL_HEADER_FOUND=1
+else
+  LTDL_HEADER_FOUND=0
+fi
+
+
+	 fi
+      fi
+      if test "x${LTDL_HEADER_FOUND}" = "x0" ; then
+         LTDL_LIB=""
+         LTDL_INCLUDE=""
+      else
+         if test "x${pbxfuncname}" = "x" ; then		# only checking headers -> no library
+	    LTDL_LIB=""
+	 fi
+         PBX_LTDL=1
+         # XXX don't know how to evaluate the description (third argument) in AC_DEFINE_UNQUOTED
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_LTDL 1
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_LTDL_VERSION
+_ACEOF
+
+      fi
+   fi
+fi
+
+
 ac_ext=cpp
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -22345,7 +22770,7 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-lodbc ${pbxlibdir} -lltdl $LIBS"
+LIBS="-lodbc ${pbxlibdir}  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -22410,7 +22835,7 @@
    fi
 
    if test "${AST_UNIXODBC_FOUND}" = "yes"; then
-      UNIXODBC_LIB="-lodbc -lltdl"
+      UNIXODBC_LIB="-lodbc "
       UNIXODBC_HEADER_FOUND="1"
       if test "x${UNIXODBC_DIR}" != "x"; then
          UNIXODBC_LIB="${pbxlibdir} ${UNIXODBC_LIB}"
@@ -36633,6 +37058,10 @@
 KDE_INCLUDE!$KDE_INCLUDE$ac_delim
 KDE_DIR!$KDE_DIR$ac_delim
 PBX_KDE!$PBX_KDE$ac_delim
+LTDL_LIB!$LTDL_LIB$ac_delim
+LTDL_INCLUDE!$LTDL_INCLUDE$ac_delim
+LTDL_DIR!$LTDL_DIR$ac_delim
+PBX_LTDL!$PBX_LTDL$ac_delim
 MISDN_LIB!$MISDN_LIB$ac_delim
 MISDN_INCLUDE!$MISDN_INCLUDE$ac_delim
 MISDN_DIR!$MISDN_DIR$ac_delim
@@ -36677,10 +37106,6 @@
 PGSQL_INCLUDE!$PGSQL_INCLUDE$ac_delim
 PGSQL_DIR!$PGSQL_DIR$ac_delim
 PBX_PGSQL!$PBX_PGSQL$ac_delim
-PRI_LIB!$PRI_LIB$ac_delim
-PRI_INCLUDE!$PRI_INCLUDE$ac_delim
-PRI_DIR!$PRI_DIR$ac_delim
-PBX_PRI!$PBX_PRI$ac_delim
 _ACEOF
 
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -36722,6 +37147,10 @@
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
+PRI_LIB!$PRI_LIB$ac_delim
+PRI_INCLUDE!$PRI_INCLUDE$ac_delim
+PRI_DIR!$PRI_DIR$ac_delim
+PBX_PRI!$PBX_PRI$ac_delim
 PORTAUDIO_LIB!$PORTAUDIO_LIB$ac_delim
 PORTAUDIO_INCLUDE!$PORTAUDIO_INCLUDE$ac_delim
 PORTAUDIO_DIR!$PORTAUDIO_DIR$ac_delim
@@ -36815,10 +37244,6 @@
 KDEINIT!$KDEINIT$ac_delim
 KDEDIR!$KDEDIR$ac_delim
 NETSNMP_CONFIG!$NETSNMP_CONFIG$ac_delim
-PG_CONFIG!$PG_CONFIG$ac_delim
-PTLIB_CONFIG!$PTLIB_CONFIG$ac_delim
-PWLIBDIR!$PWLIBDIR$ac_delim
-PWLIB_INCDIR!$PWLIB_INCDIR$ac_delim
 _ACEOF
 
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -36860,6 +37285,10 @@
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
+PG_CONFIG!$PG_CONFIG$ac_delim
+PTLIB_CONFIG!$PTLIB_CONFIG$ac_delim
+PWLIBDIR!$PWLIBDIR$ac_delim
+PWLIB_INCDIR!$PWLIB_INCDIR$ac_delim
 PWLIB_LIBDIR!$PWLIB_LIBDIR$ac_delim
 PWLIB_PLATFORM!$PWLIB_PLATFORM$ac_delim
 OPENH323DIR!$OPENH323DIR$ac_delim
@@ -36883,7 +37312,7 @@
 LTLIBOBJS!$LTLIBOBJS$ac_delim
 _ACEOF
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 21; then
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 25; then
     break
   elif $ac_last_try; then
     { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5

Modified: team/russell/chan_console/configure.ac
URL: http://svn.digium.com/view/asterisk/team/russell/chan_console/configure.ac?view=diff&rev=69707&r1=69706&r2=69707
==============================================================================
--- team/russell/chan_console/configure.ac (original)
+++ team/russell/chan_console/configure.ac Mon Jun 18 11:38:08 2007
@@ -193,6 +193,7 @@
 AST_EXT_LIB_SETUP([IMAP_TK], [UW IMAP Toolkit], [imap])
 AST_EXT_LIB_SETUP([ISDNNET], [ISDN4Linux Library], [isdnnet])
 AST_EXT_LIB_SETUP([KDE], [KDE], [kde])
+AST_EXT_LIB_SETUP([LTDL], [libtool], [ltdl])
 AST_EXT_LIB_SETUP([MISDN], [mISDN User Library], [misdn])
 AST_EXT_LIB_SETUP([NBS], [Network Broadcast Sound], [nbs])
 AST_EXT_LIB_SETUP([NCURSES], [ncurses], [ncurses])
@@ -581,6 +582,9 @@
    fi
 fi
 
+# Needed by unixodbc
+AST_EXT_LIB_CHECK([LTDL], [ltdl], [lt_dlinit], [ltdl.h], [])
+
 AC_LANG_PUSH(C++)
 
 if test "${USE_KDE}" != "no"; then
@@ -672,7 +676,7 @@
 
 AST_EXT_LIB_CHECK([NEWT], [newt], [newtBell], [newt.h])
 
-AST_EXT_LIB_CHECK([UNIXODBC], [odbc], [SQLConnect], [sql.h], [-lltdl])
+AST_EXT_LIB_CHECK([UNIXODBC], [odbc], [SQLConnect], [sql.h], [])
 
 AST_EXT_LIB_CHECK([OGG], [ogg], [ogg_sync_init], [])
 

Modified: team/russell/chan_console/funcs/func_odbc.c
URL: http://svn.digium.com/view/asterisk/team/russell/chan_console/funcs/func_odbc.c?view=diff&rev=69707&r1=69706&r2=69707
==============================================================================
--- team/russell/chan_console/funcs/func_odbc.c (original)
+++ team/russell/chan_console/funcs/func_odbc.c Mon Jun 18 11:38:08 2007
@@ -28,6 +28,7 @@
 
 /*** MODULEINFO
 	<depend>unixodbc</depend>
+	<depend>ltdl</depend>
 	<depend>res_odbc</depend>
  ***/
 

Modified: team/russell/chan_console/include/asterisk/autoconfig.h.in
URL: http://svn.digium.com/view/asterisk/team/russell/chan_console/include/asterisk/autoconfig.h.in?view=diff&rev=69707&r1=69706&r2=69707
==============================================================================
--- team/russell/chan_console/include/asterisk/autoconfig.h.in (original)
+++ team/russell/chan_console/include/asterisk/autoconfig.h.in Mon Jun 18 11:38:08 2007
@@ -225,6 +225,12 @@
 
 /* Define to 1 if you have the `localtime_r' function. */
 #undef HAVE_LOCALTIME_R
+
+/* Define this to indicate the ${LTDL_DESCRIP} library */
+#undef HAVE_LTDL
+
+/* Define to indicate the ${LTDL_DESCRIP} library version */
+#undef HAVE_LTDL_VERSION
 
 /* Define to 1 if you have the <malloc.h> header file. */
 #undef HAVE_MALLOC_H

Modified: team/russell/chan_console/main/asterisk.c
URL: http://svn.digium.com/view/asterisk/team/russell/chan_console/main/asterisk.c?view=diff&rev=69707&r1=69706&r2=69707
==============================================================================
--- team/russell/chan_console/main/asterisk.c (original)
+++ team/russell/chan_console/main/asterisk.c Mon Jun 18 11:38:08 2007
@@ -188,10 +188,10 @@
 
 struct ast_atexit {
 	void (*func)(void);
-	AST_LIST_ENTRY(ast_atexit) list;
+	AST_RWLIST_ENTRY(ast_atexit) list;
 };
 
-static AST_LIST_HEAD_STATIC(atexits, ast_atexit);
+static AST_RWLIST_HEAD_STATIC(atexits, ast_atexit);
 
 time_t ast_startuptime;
 time_t ast_lastreloadtime;
@@ -252,12 +252,12 @@
 
 #if !defined(LOW_MEMORY)
 struct file_version {
-	AST_LIST_ENTRY(file_version) list;
+	AST_RWLIST_ENTRY(file_version) list;
 	const char *file;
 	char *version;
 };
 
-static AST_LIST_HEAD_STATIC(file_versions, file_version);
+static AST_RWLIST_HEAD_STATIC(file_versions, file_version);
 
 void ast_register_file_version(const char *file, const char *version)
 {
@@ -275,36 +275,36 @@
 	new->file = file;
 	new->version = (char *) new + sizeof(*new);
 	memcpy(new->version, work, version_length);
-	AST_LIST_LOCK(&file_versions);
-	AST_LIST_INSERT_HEAD(&file_versions, new, list);
-	AST_LIST_UNLOCK(&file_versions);
+	AST_RWLIST_WRLOCK(&file_versions);
+	AST_RWLIST_INSERT_HEAD(&file_versions, new, list);
+	AST_RWLIST_UNLOCK(&file_versions);
 }
 
 void ast_unregister_file_version(const char *file)
 {
 	struct file_version *find;
 
-	AST_LIST_LOCK(&file_versions);
-	AST_LIST_TRAVERSE_SAFE_BEGIN(&file_versions, find, list) {
+	AST_RWLIST_WRLOCK(&file_versions);
+	AST_RWLIST_TRAVERSE_SAFE_BEGIN(&file_versions, find, list) {
 		if (!strcasecmp(find->file, file)) {
-			AST_LIST_REMOVE_CURRENT(&file_versions, list);
+			AST_RWLIST_REMOVE_CURRENT(&file_versions, list);
 			break;
 		}
 	}
-	AST_LIST_TRAVERSE_SAFE_END;
-	AST_LIST_UNLOCK(&file_versions);
+	AST_RWLIST_TRAVERSE_SAFE_END;
+	AST_RWLIST_UNLOCK(&file_versions);
 
 	if (find)
 		ast_free(find);
 }
 
 struct thread_list_t {
-	AST_LIST_ENTRY(thread_list_t) list;
+	AST_RWLIST_ENTRY(thread_list_t) list;
 	char *name;
 	pthread_t id;
 };
 
-static AST_LIST_HEAD_STATIC(thread_list, thread_list_t);
+static AST_RWLIST_HEAD_STATIC(thread_list, thread_list_t);
 
 static const char show_threads_help[] =
 "Usage: core show threads\n"
@@ -318,24 +318,24 @@
 		return;
 	new->id = pthread_self();
 	new->name = name; /* steal the allocated memory for the thread name */
-	AST_LIST_LOCK(&thread_list);
-	AST_LIST_INSERT_HEAD(&thread_list, new, list);
-	AST_LIST_UNLOCK(&thread_list);
+	AST_RWLIST_WRLOCK(&thread_list);
+	AST_RWLIST_INSERT_HEAD(&thread_list, new, list);
+	AST_RWLIST_UNLOCK(&thread_list);
 }
 
 void ast_unregister_thread(void *id)
 {
 	struct thread_list_t *x;
 
-	AST_LIST_LOCK(&thread_list);
-	AST_LIST_TRAVERSE_SAFE_BEGIN(&thread_list, x, list) {
+	AST_RWLIST_WRLOCK(&thread_list);
+	AST_RWLIST_TRAVERSE_SAFE_BEGIN(&thread_list, x, list) {
 		if ((void *) x->id == id) {
-			AST_LIST_REMOVE_CURRENT(&thread_list, list);
+			AST_RWLIST_REMOVE_CURRENT(&thread_list, list);
 			break;
 		}
 	}
-	AST_LIST_TRAVERSE_SAFE_END;
-	AST_LIST_UNLOCK(&thread_list);
+	AST_RWLIST_TRAVERSE_SAFE_END;
+	AST_RWLIST_UNLOCK(&thread_list);
 	if (x) {
 		ast_free(x->name);
 		ast_free(x);
@@ -408,12 +408,12 @@
 	int count = 0;
 	struct thread_list_t *cur;
 
-	AST_LIST_LOCK(&thread_list);
-	AST_LIST_TRAVERSE(&thread_list, cur, list) {
+	AST_RWLIST_RDLOCK(&thread_list);
+	AST_RWLIST_TRAVERSE(&thread_list, cur, list) {
 		ast_cli(fd, "%p %s\n", (void *)cur->id, cur->name);
 		count++;
 	}
-        AST_LIST_UNLOCK(&thread_list);
+        AST_RWLIST_UNLOCK(&thread_list);
 	ast_cli(fd, "%d threads listed.\n", count);
 	return 0;
 }
@@ -623,8 +623,8 @@
 
 	ast_cli(fd, FORMAT, "File", "Revision");
 	ast_cli(fd, FORMAT, "----", "--------");
-	AST_LIST_LOCK(&file_versions);
-	AST_LIST_TRAVERSE(&file_versions, iterator, list) {
+	AST_RWLIST_RDLOCK(&file_versions);
+	AST_RWLIST_TRAVERSE(&file_versions, iterator, list) {
 		if (havename && strcasecmp(iterator->file, argv[4]))
 			continue;
 
@@ -636,7 +636,7 @@
 		if (havename)
 			break;
 	}
-	AST_LIST_UNLOCK(&file_versions);
+	AST_RWLIST_UNLOCK(&file_versions);
 	if (!havename) {
 		ast_cli(fd, "%d files listed.\n", count_files);
 	}
@@ -658,14 +658,14 @@
 	if (pos != 3)
 		return NULL;
 
-	AST_LIST_LOCK(&file_versions);
-	AST_LIST_TRAVERSE(&file_versions, find, list) {
+	AST_RWLIST_RDLOCK(&file_versions);
+	AST_RWLIST_TRAVERSE(&file_versions, find, list) {
 		if (!strncasecmp(word, find->file, matchlen) && ++which > state) {
 			ret = ast_strdup(find->file);
 			break;
 		}
 	}
-	AST_LIST_UNLOCK(&file_versions);
+	AST_RWLIST_UNLOCK(&file_versions);
 
 	return ret;
 }
@@ -676,28 +676,28 @@
 	int res = -1;
 	struct ast_atexit *ae;
 	ast_unregister_atexit(func);	
-	AST_LIST_LOCK(&atexits);
+	AST_RWLIST_WRLOCK(&atexits);
 	if ((ae = ast_calloc(1, sizeof(*ae)))) {
-		AST_LIST_INSERT_HEAD(&atexits, ae, list);
+		AST_RWLIST_INSERT_HEAD(&atexits, ae, list);
 		ae->func = func;
 		res = 0;
 	}
-	AST_LIST_UNLOCK(&atexits);
+	AST_RWLIST_UNLOCK(&atexits);
 	return res;
 }
 
 void ast_unregister_atexit(void (*func)(void))
 {
 	struct ast_atexit *ae;
-	AST_LIST_LOCK(&atexits);
-	AST_LIST_TRAVERSE_SAFE_BEGIN(&atexits, ae, list) {
+	AST_RWLIST_WRLOCK(&atexits);
+	AST_RWLIST_TRAVERSE_SAFE_BEGIN(&atexits, ae, list) {
 		if (ae->func == func) {
-			AST_LIST_REMOVE_CURRENT(&atexits, list);
+			AST_RWLIST_REMOVE_CURRENT(&atexits, list);
 			break;
 		}
 	}
-	AST_LIST_TRAVERSE_SAFE_END
-	AST_LIST_UNLOCK(&atexits);
+	AST_RWLIST_TRAVERSE_SAFE_END
+	AST_RWLIST_UNLOCK(&atexits);
 }
 
 static int fdprint(int fd, const char *s)
@@ -1192,12 +1192,12 @@
 static void ast_run_atexits(void)
 {
 	struct ast_atexit *ae;
-	AST_LIST_LOCK(&atexits);
-	AST_LIST_TRAVERSE(&atexits, ae, list) {
+	AST_RWLIST_RDLOCK(&atexits);
+	AST_RWLIST_TRAVERSE(&atexits, ae, list) {
 		if (ae->func) 
 			ae->func();
 	}
-	AST_LIST_UNLOCK(&atexits);
+	AST_RWLIST_UNLOCK(&atexits);
 }
 
 static void quit_handler(int num, int nice, int safeshutdown, int restart)

Modified: team/russell/chan_console/main/cdr.c
URL: http://svn.digium.com/view/asterisk/team/russell/chan_console/main/cdr.c?view=diff&rev=69707&r1=69706&r2=69707
==============================================================================
--- team/russell/chan_console/main/cdr.c (original)
+++ team/russell/chan_console/main/cdr.c Mon Jun 18 11:38:08 2007
@@ -63,10 +63,10 @@
 	char name[20];
 	char desc[80];
 	ast_cdrbe be;
-	AST_LIST_ENTRY(ast_cdr_beitem) list;
+	AST_RWLIST_ENTRY(ast_cdr_beitem) list;
 };
 
-static AST_LIST_HEAD_STATIC(be_list, ast_cdr_beitem);
+static AST_RWLIST_HEAD_STATIC(be_list, ast_cdr_beitem);
 
 struct ast_cdr_batch_item {
 	struct ast_cdr *cdr;
@@ -111,25 +111,23 @@
 */
 int ast_cdr_register(const char *name, const char *desc, ast_cdrbe be)
 {
-	struct ast_cdr_beitem *i;
+	struct ast_cdr_beitem *i = NULL;
 
 	if (!name)
 		return -1;
+
 	if (!be) {
 		ast_log(LOG_WARNING, "CDR engine '%s' lacks backend\n", name);
 		return -1;
 	}
 
-	AST_LIST_LOCK(&be_list);
-	AST_LIST_TRAVERSE(&be_list, i, list) {
-		if (!strcasecmp(name, i->name))
-			break;
-	}
-	AST_LIST_UNLOCK(&be_list);
-
-	if (i) {
-		ast_log(LOG_WARNING, "Already have a CDR backend called '%s'\n", name);
-		return -1;
+	AST_RWLIST_WRLOCK(&be_list);
+	AST_RWLIST_TRAVERSE(&be_list, i, list) {
+		if (!strcasecmp(name, i->name)) {
+			ast_log(LOG_WARNING, "Already have a CDR backend called '%s'\n", name);
+			AST_RWLIST_UNLOCK(&be_list);
+			return -1;
+		}
 	}
 
 	if (!(i = ast_calloc(1, sizeof(*i)))) 	
@@ -139,9 +137,8 @@
 	ast_copy_string(i->name, name, sizeof(i->name));
 	ast_copy_string(i->desc, desc, sizeof(i->desc));
 
-	AST_LIST_LOCK(&be_list);
-	AST_LIST_INSERT_HEAD(&be_list, i, list);
-	AST_LIST_UNLOCK(&be_list);
+	AST_RWLIST_INSERT_HEAD(&be_list, i, list);
+	AST_RWLIST_UNLOCK(&be_list);
 
 	return 0;
 }
@@ -151,18 +148,18 @@
 {
 	struct ast_cdr_beitem *i = NULL;
 
-	AST_LIST_LOCK(&be_list);
-	AST_LIST_TRAVERSE_SAFE_BEGIN(&be_list, i, list) {
+	AST_RWLIST_WRLOCK(&be_list);
+	AST_RWLIST_TRAVERSE_SAFE_BEGIN(&be_list, i, list) {
 		if (!strcasecmp(name, i->name)) {
-			AST_LIST_REMOVE_CURRENT(&be_list, list);
+			AST_RWLIST_REMOVE_CURRENT(&be_list, list);
 			if (option_verbose > 1)
 				ast_verbose(VERBOSE_PREFIX_2 "Unregistered '%s' CDR backend\n", name);
 			ast_free(i);
 			break;
 		}
 	}
-	AST_LIST_TRAVERSE_SAFE_END;
-	AST_LIST_UNLOCK(&be_list);
+	AST_RWLIST_TRAVERSE_SAFE_END;
+	AST_RWLIST_UNLOCK(&be_list);
 }
 
 /*! Duplicate a CDR record 
@@ -933,11 +930,11 @@
 		ast_set_flag(cdr, AST_CDR_FLAG_POSTED);
 		if (ast_test_flag(cdr, AST_CDR_FLAG_POST_DISABLED))
 			continue;
-		AST_LIST_LOCK(&be_list);
-		AST_LIST_TRAVERSE(&be_list, i, list) {
+		AST_RWLIST_RDLOCK(&be_list);
+		AST_RWLIST_TRAVERSE(&be_list, i, list) {
 			i->be(cdr);
 		}
-		AST_LIST_UNLOCK(&be_list);
+		AST_RWLIST_UNLOCK(&be_list);
 	}
 }
 
@@ -1188,11 +1185,11 @@
 			ast_cli(fd, "CDR maximum batch time: %d second%s\n", batchtime, ESS(batchtime));
 			ast_cli(fd, "CDR next scheduled batch processing time: %ld second%s\n", nextbatchtime, ESS(nextbatchtime));
 		}
-		AST_LIST_LOCK(&be_list);
-		AST_LIST_TRAVERSE(&be_list, beitem, list) {
+		AST_RWLIST_RDLOCK(&be_list);
+		AST_RWLIST_TRAVERSE(&be_list, beitem, list) {
 			ast_cli(fd, "CDR registered backend: %s\n", beitem->name);
 		}
-		AST_LIST_UNLOCK(&be_list);
+		AST_RWLIST_UNLOCK(&be_list);
 	}
 
 	return 0;

Modified: team/russell/chan_console/main/dnsmgr.c
URL: http://svn.digium.com/view/asterisk/team/russell/chan_console/main/dnsmgr.c?view=diff&rev=69707&r1=69706&r2=69707
==============================================================================
--- team/russell/chan_console/main/dnsmgr.c (original)
+++ team/russell/chan_console/main/dnsmgr.c Mon Jun 18 11:38:08 2007
@@ -60,12 +60,12 @@
 	/*! Set to 1 if the entry changes */
 	int changed:1;
 	ast_mutex_t lock;
-	AST_LIST_ENTRY(ast_dnsmgr_entry) list;
+	AST_RWLIST_ENTRY(ast_dnsmgr_entry) list;
 	/*! just 1 here, but we use calloc to allocate the correct size */
 	char name[1];
 };
 
-static AST_LIST_HEAD_STATIC(entry_list, ast_dnsmgr_entry);
+static AST_RWLIST_HEAD_STATIC(entry_list, ast_dnsmgr_entry);
 
 AST_MUTEX_DEFINE_STATIC(refresh_lock);
 
@@ -97,9 +97,9 @@
 	ast_mutex_init(&entry->lock);
 	strcpy(entry->name, name);
 
-	AST_LIST_LOCK(&entry_list);
-	AST_LIST_INSERT_HEAD(&entry_list, entry, list);
-	AST_LIST_UNLOCK(&entry_list);
+	AST_RWLIST_WRLOCK(&entry_list);
+	AST_RWLIST_INSERT_HEAD(&entry_list, entry, list);
+	AST_RWLIST_UNLOCK(&entry_list);
 
 	return entry;
 }
@@ -109,9 +109,9 @@
 	if (!entry)
 		return;
 
-	AST_LIST_LOCK(&entry_list);
-	AST_LIST_REMOVE(&entry_list, entry, list);
-	AST_LIST_UNLOCK(&entry_list);
+	AST_RWLIST_WRLOCK(&entry_list);
+	AST_RWLIST_REMOVE(&entry_list, entry, list);
+	AST_RWLIST_UNLOCK(&entry_list);
 	if (option_verbose > 3)
 		ast_verbose(VERBOSE_PREFIX_4 "removing dns manager for '%s'\n", entry->name);
 
@@ -302,10 +302,10 @@
 
 	ast_cli(fd, "DNS Manager: %s\n", enabled ? "enabled" : "disabled");
 	ast_cli(fd, "Refresh Interval: %d seconds\n", refresh_interval);
-	AST_LIST_LOCK(&entry_list);
-	AST_LIST_TRAVERSE(&entry_list, entry, list)
+	AST_RWLIST_RDLOCK(&entry_list);
+	AST_RWLIST_TRAVERSE(&entry_list, entry, list)
 		count++;
-	AST_LIST_UNLOCK(&entry_list);
+	AST_RWLIST_UNLOCK(&entry_list);
 	ast_cli(fd, "Number of entries: %d\n", count);
 
 	return 0;

Modified: team/russell/chan_console/res/res_config_odbc.c
URL: http://svn.digium.com/view/asterisk/team/russell/chan_console/res/res_config_odbc.c?view=diff&rev=69707&r1=69706&r2=69707
==============================================================================
--- team/russell/chan_console/res/res_config_odbc.c (original)
+++ team/russell/chan_console/res/res_config_odbc.c Mon Jun 18 11:38:08 2007
@@ -30,6 +30,7 @@
 
 /*** MODULEINFO
 	<depend>unixodbc</depend>
+	<depend>ltdl</depend>
 	<depend>res_odbc</depend>
  ***/
 

Modified: team/russell/chan_console/res/res_odbc.c
URL: http://svn.digium.com/view/asterisk/team/russell/chan_console/res/res_odbc.c?view=diff&rev=69707&r1=69706&r2=69707
==============================================================================
--- team/russell/chan_console/res/res_odbc.c (original)
+++ team/russell/chan_console/res/res_odbc.c Mon Jun 18 11:38:08 2007
@@ -31,6 +31,7 @@
 
 /*** MODULEINFO
 	<depend>unixodbc</depend>
+	<depend>ltdl</depend>
  ***/
 
 #include "asterisk.h"




More information about the asterisk-commits mailing list