From b4b7ffc732f7bd4164d2aabec2c71c1bb6a1f478 Mon Sep 17 00:00:00 2001 From: Gerhard Rieger Date: Tue, 22 Nov 2011 13:20:02 +0100 Subject: [PATCH] check if define __APPLE_USE_RFC_2292 helps to enable IPV6_* --- CHANGES | 4 ++++ configure.in | 22 +++++++++++++++++++++- test.sh | 14 +++++++++----- 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/CHANGES b/CHANGES index 677acb4..f2ad794 100644 --- a/CHANGES +++ b/CHANGES @@ -71,6 +71,10 @@ porting: IPV6_PKTINFO IPV6_RTHDR IPV6_DSTOPTS IPV6_HOPOPTS IPV6_HOPLIMIT Thanks to Jerry Jacobs for reporting this problem (Mac OS X Lion 10.7) + check if define __APPLE_USE_RFC_2292 helps to enable IPV6_* (MacOSX + Lion 7.1); thanks to Jerry Jacobs to reporting this problem and + proposing a solution + ####################### V 1.7.1.3: security: diff --git a/configure.in b/configure.in index 8f86cd5..8e95a5e 100644 --- a/configure.in +++ b/configure.in @@ -64,7 +64,6 @@ AC_CHECK_HEADERS(netinet/ip.h, [], [], [AC_INCLUDES_DEFAULT #include #endif]) # Solaris prerequisites for netinet/ip.h AC_CHECK_HEADERS(netinet/tcp.h) -AC_CHECK_HEADERS(netinet6/in6.h) # found on OpenBSD, used for IPV6_* AC_CHECK_HEADER(net/if.h, [], [], [AC_INCLUDES_DEFAULT #if HAVE_SYS_SOCKET_H #include @@ -215,6 +214,27 @@ if test "$WITH_IP6"; then #ifdef HAVE_NETINET_IN_H # include #endif]) + AC_CHECK_HEADERS(netinet6/in6.h) # found on OpenBSD and Lion, used for IPV6_* + +AC_MSG_CHECKING(if __APPLE_USE_RFC_2292 is helpful) +AC_CACHE_VAL(ac_cv_apple_use_rfc_2292, + [AC_TRY_COMPILE(,[#ifndef IPV6_HOPOPTS + murks; +#endif], + [ac_cv_apple_use_rfc_2292=no], + [AC_TRY_COMPILE([#define __APPLE_USE_RFC_2292], + [#ifndef IPV6_HOPOPTS + murks; +#endif], + [ac_cv_apple_use_rfc_2292=yes], + [ac_cv_apple_use_rfc_2292=no] + )] +)]) +if test "$ac_cv_apple_use_rfc_2292" = yes; then + AC_DEFINE(__APPLE_USE_RFC_2292) +fi +AC_MSG_RESULT($ac_cv_apple_use_rfc_2292) + fi AC_MSG_CHECKING(whether to include raw IP support) diff --git a/test.sh b/test.sh index 4206973..12e447c 100755 --- a/test.sh +++ b/test.sh @@ -3396,7 +3396,7 @@ wait fi ;; # NUMCOND esac N=$((N+1)) -set +vx +#set +vx NAME=EXECIGNOREEOF @@ -7540,6 +7540,7 @@ pid3=$! waittcp4port $p2 1 $CMD 2>"${te}2" & pid2=$! +usleep $MICROS waittcp4port $p1 1 echo "$da1a" |$CMD1 2>>"${te}1a" echo "$da1b" |$CMD1 2>>"${te}1b" @@ -8767,7 +8768,7 @@ fi ;; # NUMCOND esac PORT=$((PORT+1)) N=$((N+1)) -set +vx +#set +vx # there was a bug with udp-recvfrom and fork: terminating sub processes became # zombies because the master process caught SIGCHLD but did not wait() @@ -9147,6 +9148,9 @@ elif [ "$ROOT" = root -a $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then elif [ "$PF" = "IP6" ] && ( ! feat=$(testaddrs ip6) || ! runsip6 >/dev/null ); then $PRINTF "test $F_n $TEST... ${YELLOW}IP6 not available${NORMAL}\n" $N numCANT=$((numCANT+1)) +elif ! testoptions $SCM_RECV >/dev/null; then + $PRINTF "test $F_n $TEST... ${YELLOW}option $SCM_RECV not available${NORMAL}\n" $N + numCANT=$((numCANT+1)) else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -9205,7 +9209,7 @@ else fi numOK=$((numOK+1)) fi -set +vx +#set +vx else # option is not supported $PRINTF "${YELLOW}$SCM_RECV not available${NORMAL}\n" numCANT=$((numCANT+1)) @@ -9332,7 +9336,7 @@ fi # NUMCOND, feats ;; esac N=$((N+1)) -set +xv +#set +xv # done <<<" TCP4 TCP $LOCALHOST $SECONDADDR $PORT $((PORT+1)) @@ -9424,7 +9428,7 @@ else fi numOK=$((numOK+1)) fi -set +vx +#set +vx else # option is not supported $PRINTF "${YELLOW}$SCM_RECV not available${NORMAL}\n" numCANT=$((numCANT+1))