summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorWilliam A. Rowe Jr <wrowe@apache.org>2007-10-14 23:39:06 +0000
committerWilliam A. Rowe Jr <wrowe@apache.org>2007-10-14 23:39:06 +0000
commitd102b8a84376ed0540b3df6d67df68867075fcce (patch)
tree44258b92ae31f81d51dfa1981740fe7dd82be88c /test
parentfffe121640eb45b06823cfa534443620b1e9579a (diff)
downloadapr-d102b8a84376ed0540b3df6d67df68867075fcce.tar.gz
Patch to resolve one stray case of AF not available.
Also patch for OS2, Windows AF codes. What a joke. git-svn-id: https://svn.apache.org/repos/asf/apr/apr/trunk@584637 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'test')
-rw-r--r--test/testsockets.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/test/testsockets.c b/test/testsockets.c
index 86c924516..b9a26f942 100644
--- a/test/testsockets.c
+++ b/test/testsockets.c
@@ -59,10 +59,16 @@ static void udp_socket(abts_case *tc, void *data)
/* On recent Linux systems, whilst IPv6 is always supported by glibc,
* socket(AF_INET6, ...) calls will fail with EAFNOSUPPORT if the
* "ipv6" kernel module is not loaded. */
-#ifdef EAFNOSUPPORT
+#if defined(WSAEAFNOSUPPORT)
+#define V6_NOT_ENABLED(e) ((e) == APR_OS_START_SYSERR + WSAEAFNOSUPPORT)
+#elif defined(SOCEAFNOSUPPORT)
+#define V6_NOT_ENABLED(e) ((e) == APR_OS_START_SYSERR + SOCEAFNOSUPPORT)
+#elif defined(EAFNOSUPPORT)
#define V6_NOT_ENABLED(e) ((e) == EAFNOSUPPORT)
+#elif !APR_HAVE_IPV6
+#define V6_NOT_ENABLED(e) (1)
#else
-#define V6_NOT_ENABLED(e) (0)
+#error MUST have an EAFNOSUPPORT class of error code to enable IPv6!
#endif
static void tcp6_socket(abts_case *tc, void *data)
@@ -118,6 +124,10 @@ static void sendto_receivefrom_helper(abts_case *tc, const char *addr,
apr_size_t len = 30;
rv = apr_socket_create(&sock, family, SOCK_DGRAM, 0, p);
+ if ((family == APR_INET6) && V6_NOT_ENABLED(rv)) {
+ ABTS_NOT_IMPL(tc, "IPv6 not enabled");
+ return;
+ }
ABTS_INT_EQUAL(tc, APR_SUCCESS, rv);
if (rv != APR_SUCCESS)
return;
@@ -173,6 +183,7 @@ static void sendto_receivefrom_helper(abts_case *tc, const char *addr,
static void sendto_receivefrom(abts_case *tc, void *data)
{
+ apr_status_t rv;
sendto_receivefrom_helper(tc, "127.0.0.1", "127.1.2.3", APR_INET);
#if APR_HAVE_IPV6
sendto_receivefrom_helper(tc, "::1", "FA0E::1234:127.1.2.3", APR_INET6);