Return-Path: Delivered-To: apmail-apr-commits-archive@www.apache.org Received: (qmail 39858 invoked from network); 30 Jun 2007 13:30:45 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 30 Jun 2007 13:30:45 -0000 Received: (qmail 42286 invoked by uid 500); 30 Jun 2007 13:30:49 -0000 Delivered-To: apmail-apr-commits-archive@apr.apache.org Received: (qmail 42194 invoked by uid 500); 30 Jun 2007 13:30:48 -0000 Mailing-List: contact commits-help@apr.apache.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: Reply-To: dev@apr.apache.org List-Id: Delivered-To: mailing list commits@apr.apache.org Received: (qmail 42183 invoked by uid 99); 30 Jun 2007 13:30:48 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 30 Jun 2007 06:30:48 -0700 X-ASF-Spam-Status: No, hits=-99.5 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 30 Jun 2007 06:30:45 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id E26051A981A; Sat, 30 Jun 2007 06:30:24 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r552147 - /apr/apr/trunk/test/testsockets.c Date: Sat, 30 Jun 2007 13:30:24 -0000 To: commits@apr.apache.org From: davi@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070630133024.E26051A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: davi Date: Sat Jun 30 06:30:24 2007 New Revision: 552147 URL: http://svn.apache.org/viewvc?view=rev&rev=552147 Log: Split the sendto_receivefrom test into two tests, one for IPv6 and one for IPv4, and allow the tests to fail. Previously the test would fail or succeed depending on the host IPv6 connectivity (non-localhost IPv6 address) and resolver bugs (AI_ADDRCONFIG flag), which would cause the test to core dump. The AI_ADDRCONFIG flag (and loopback addresses) issue has been reported and fixed: http://sourceware.org/bugzilla/show_bug.cgi?id=4599 Modified: apr/apr/trunk/test/testsockets.c Modified: apr/apr/trunk/test/testsockets.c URL: http://svn.apache.org/viewvc/apr/apr/trunk/test/testsockets.c?view=diff&rev=552147&r1=552146&r2=552147 ============================================================================== --- apr/apr/trunk/test/testsockets.c (original) +++ apr/apr/trunk/test/testsockets.c Sat Jun 30 06:30:24 2007 @@ -103,7 +103,7 @@ #endif } -static void sendto_receivefrom(abts_case *tc, void *data) +static void sendto_receivefrom_helper(abts_case *tc, const char *addr, int family) { apr_status_t rv; apr_socket_t *sock = NULL; @@ -115,28 +115,19 @@ apr_sockaddr_t *from; apr_sockaddr_t *to; apr_size_t len = 30; - int family; - const char *addr; -#if APR_HAVE_IPV6 - family = APR_INET6; - addr = "::1"; rv = apr_socket_create(&sock, family, SOCK_DGRAM, 0, p); - if (V6_NOT_ENABLED(rv)) { -#endif - family = APR_INET; - addr = "127.0.0.1"; - rv = apr_socket_create(&sock, family, SOCK_DGRAM, 0, p); -#if APR_HAVE_IPV6 - } -#endif ABTS_INT_EQUAL(tc, APR_SUCCESS, rv); + if (rv != APR_SUCCESS) + return; rv = apr_socket_create(&sock2, family, SOCK_DGRAM, 0, p); ABTS_INT_EQUAL(tc, APR_SUCCESS, rv); + if (rv != APR_SUCCESS) + return; - rv = apr_sockaddr_info_get(&to, addr, APR_UNSPEC, 7772, 0, p); + rv = apr_sockaddr_info_get(&to, addr, family, 7772, 0, p); ABTS_INT_EQUAL(tc, APR_SUCCESS, rv); - rv = apr_sockaddr_info_get(&from, addr, APR_UNSPEC, 7771, 0, p); + rv = apr_sockaddr_info_get(&from, addr, family, 7771, 0, p); ABTS_INT_EQUAL(tc, APR_SUCCESS, rv); rv = apr_socket_opt_set(sock, APR_SO_REUSEADDR, 1); @@ -147,12 +138,12 @@ rv = apr_socket_bind(sock, to); APR_ASSERT_SUCCESS(tc, "Could not bind socket", rv); if (rv != APR_SUCCESS) - return; + return; rv = apr_socket_bind(sock2, from); APR_ASSERT_SUCCESS(tc, "Could not bind second socket", rv); if (rv != APR_SUCCESS) - return; + return; len = STRLEN; rv = apr_socket_sendto(sock2, to, 0, sendbuf, &len); @@ -176,6 +167,14 @@ apr_socket_close(sock); apr_socket_close(sock2); +} + +static void sendto_receivefrom(abts_case *tc, void *data) +{ +#if APR_HAVE_IPV6 + sendto_receivefrom_helper(tc, "::1", APR_INET6); +#endif + sendto_receivefrom_helper(tc, "127.0.0.1", APR_INET); } static void socket_userdata(abts_case *tc, void *data)