From: Kevin P. Fleming Date: Fri, 13 Oct 2006 15:47:42 +0000 (+0000) Subject: Merged revisions 45027 via svnmerge from X-Git-Tag: 1.6.0-beta1~3^2~4424 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0638096e5caaaaa55639581e2f6af6a58bed7002;p=thirdparty%2Fasterisk.git Merged revisions 45027 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r45027 | kpfleming | 2006-10-13 10:41:14 -0500 (Fri, 13 Oct 2006) | 2 lines use a configure script test for PMTU discovery control instead of just assuming it's available on Linux ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45029 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/configure b/configure index dd84a65ed3..689d5b0f04 100755 --- a/configure +++ b/configure @@ -14415,6 +14415,93 @@ cat >>confdefs.h <<\_ACEOF _ACEOF +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS="${saved_cppflags}" + fi + + + + if test "x${PBX_IP_MTU_DISCOVER}" != "x1" -a "${USE_IP_MTU_DISCOVER}" != "no"; then + { echo "$as_me:$LINENO: checking for IP_MTU_DISCOVER in netinet/in.h" >&5 +echo $ECHO_N "checking for IP_MTU_DISCOVER in netinet/in.h... $ECHO_C" >&6; } + saved_cppflags="${CPPFLAGS}" + if test "x${IP_MTU_DISCOVER_DIR}" != "x"; then + IP_MTU_DISCOVER_INCLUDE= "-I${IP_MTU_DISCOVER_DIR}/include" + fi + CPPFLAGS="${CPPFLAGS} ${IP_MTU_DISCOVER_INCLUDE}" + + cat >conftest.$ac_ext <<_ACEOF + /* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +int foo = IP_MTU_DISCOVER; + ; + return 0; +} +_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); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (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_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (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_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + PBX_IP_MTU_DISCOVER=1 + +cat >>confdefs.h <<\_ACEOF +#define HAVE_IP_MTU_DISCOVER 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_IP_MTU_DISCOVER_VERSION +_ACEOF + + else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 diff --git a/configure.ac b/configure.ac index bd4982b265..80ac4e90b5 100644 --- a/configure.ac +++ b/configure.ac @@ -299,6 +299,8 @@ AC_LINK_IFELSE( AST_C_DEFINE_CHECK([RTLD_NOLOAD], [RTLD_NOLOAD], [dlfcn.h]) +AST_C_DEFINE_CHECK([IP_MTU_DISCOVER], [IP_MTU_DISCOVER], [netinet/in.h]) + AC_CHECK_HEADER([libkern/OSAtomic.h], [AC_DEFINE_UNQUOTED([HAVE_OSX_ATOMICS], 1, [Define to 1 if OSX atomic operations are supported.])]) diff --git a/include/asterisk/autoconfig.h.in b/include/asterisk/autoconfig.h.in index 0e84394b9f..bb691133da 100644 --- a/include/asterisk/autoconfig.h.in +++ b/include/asterisk/autoconfig.h.in @@ -169,6 +169,12 @@ /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H +/* Define if your system has the IP_MTU_DISCOVER headers. */ +#undef HAVE_IP_MTU_DISCOVER + +/* Define IP_MTU_DISCOVER headers version */ +#undef HAVE_IP_MTU_DISCOVER_VERSION + /* Define to 1 if you have the `isascii' function. */ #undef HAVE_ISASCII diff --git a/main/utils.c b/main/utils.c index 9ff2fd48ac..ceb049f3a5 100644 --- a/main/utils.c +++ b/main/utils.c @@ -987,10 +987,10 @@ int ast_dynamic_str_thread_build_va(struct ast_dynamic_str **buf, size_t max_len void ast_enable_packet_fragmentation(int sock) { -#ifdef __linux__ +#if defined(HAVE_IP_MTU_DISCOVER) int val = IP_PMTUDISC_DONT; if (setsockopt(sock, IPPROTO_IP, IP_MTU_DISCOVER, &val, sizeof(val))) ast_log(LOG_WARNING, "Unable to disable PMTU discovery. Large UDP packets may fail to be delivered when sent from this socket.\n"); -#endif +#endif /* HAVE_IP_MTU_DISCOVER */ }