From patchwork Wed Jul 17 17:55:02 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Romain Geissler X-Patchwork-Id: 33727 Received: (qmail 127726 invoked by alias); 17 Jul 2019 17:57:34 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 127716 invoked by uid 89); 17 Jul 2019 17:57:34 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-15.2 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS autolearn=ham version=3.3.1 spammy= X-HELO: mail1.bemta25.messagelabs.com Return-Path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amadeus.com; s=SYM2018Q2; t=1563386244; i=@amadeus.com; bh=Hap0KxLOOVo/V7LCNTS5qq7O90PSVBu+WlAUlRFsdtg=; h=Date:From:To:Subject:Message-ID:MIME-Version:Content-Type; b=Gdq6BBRJYp2hs1PgFem7egm6e8a+gbrkhG5zP0ZAW/MzLKT5jZm2adm6ZxjlLx3Fi g/ZakDT03wBIdbhgR6DRUNIfP/csL1HX+K62FanOKK+pLKQlFFG5xGPtn68rTCUsns WhSUsxZwKa+u5KBEl/OaOQx02V1htObVlajZEvSxo2aiw72ifPivbioLOikxFjUO83 Al/+FSspXl7YL44wXd9K+uLFQjEphWI7r5KrTY41IL/jgOL3RkSk4dLcmV+isLWNj/ tUHUKL7+s1q82rnAwjoFa5qU/0RROTFsNNdCRrUSpqof1uSOc/1iGOmlJDQpL7jUkP uxAG6ySBJWxwA== Authentication-Results: mx.messagelabs.com; dkim=none (message not signed); dmarc=fail (p=none sp=reject adkim=r aspf=r) header.from=amadeus.com X-Env-Sender: romain.geissler@amadeus.com X-Msg-Ref: server-11.tower-309.messagelabs.com!1563386241!16204!15 X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.43.9; banners=-,-,- X-VirusChecked: Checked Date: Wed, 17 Jul 2019 17:55:02 +0000 From: Romain Geissler To: Subject: [BZ 24816] Fix nss/tst-nss-files-hosts-long.c when there is no IPv6 support Message-ID: User-Agent: Alpine 2.20 (LSU 67 2015-01-07) MIME-Version: 1.0 Hi, Here is a small patch to fix BZ 24816 (details are in the bug report). Tested on Linux x64. PS: I don't have a copyright assignment, and the diff while trivial, is bigger than 15 lines. Is this still ok or not ? Cheers, Romain 2019-07-17 Romain Geissler [BZ #24816] * nss/tst-nss-files-hosts-long.c: Include . (supports_inet_family): Define. (do_test): Use supports_inet_family for AF_INET and AF_INET6. From 5c57c2ead3684a26924a87b8f2dd43b75470ab9b Mon Sep 17 00:00:00 2001 From: Romain Geissler Date: Wed, 17 Jul 2019 12:29:21 +0000 Subject: [PATCH] [BZ 24816] Fix nss/tst-nss-files-hosts-long.c when there is no IPv6 support. --- nss/tst-nss-files-hosts-long.c | 47 ++++++++++++++++++++++++++++------ 1 file changed, 39 insertions(+), 8 deletions(-) diff --git a/nss/tst-nss-files-hosts-long.c b/nss/tst-nss-files-hosts-long.c index 32f849e481b..aa79b88e41a 100644 --- a/nss/tst-nss-files-hosts-long.c +++ b/nss/tst-nss-files-hosts-long.c @@ -22,6 +22,31 @@ #include #include #include +#include + +static int +supports_inet_family(int family) +{ + struct ifaddrs *ifaddr, *ifa; + int ret = 0; + + if (getifaddrs(&ifaddr) == -1) + FAIL_EXIT1("getifaddrs failed"); + + for (ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next) { + if (ifa->ifa_addr == NULL) + continue; + + if (ifa->ifa_addr->sa_family == family) { + ret = 1; + break; + } + } + + freeifaddrs(ifaddr); + + return ret; +} static int do_test (void) @@ -30,14 +55,20 @@ do_test (void) /* Run getent to fetch the IPv4 address for host test4. This forces /etc/hosts to be parsed. */ - ret = system("getent ahostsv4 test4"); - if (ret != 0) - FAIL_EXIT1("ahostsv4 failed"); - - /* Likewise for IPv6. */ - ret = system("getent ahostsv6 test6"); - if (ret != 0) - FAIL_EXIT1("ahostsv6 failed"); + if (supports_inet_family(AF_INET)) + { + ret = system("getent ahostsv4 test4"); + if (ret != 0) + FAIL_EXIT1("ahostsv4 failed"); + } + + /* Likewise for IPv6. */ + if (supports_inet_family(AF_INET6)) + { + ret = system("getent ahostsv6 test6"); + if (ret != 0) + FAIL_EXIT1("ahostsv6 failed"); + } exit (0); }