From patchwork Sat Dec 1 20:13:33 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Weimer X-Patchwork-Id: 1006412 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-97866-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="IwCQJ7R3"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 436jBr3QQTz9s8J for ; Sun, 2 Dec 2018 07:13:56 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id:mime-version :content-type; q=dns; s=default; b=aehA4j8fj+0XDL21t98TiPQQBPhXg 9aEryWdJLyfenCg9sFoOJPBAoXntmoqPKlkCFHP+pEw5XQXIvoQIKt0QPjI/dlHg bbzpoys9v8weBXqD4xxDhG7crW/vcroh+SyjHyL/mjYp9+ZbB5MTYuN9tsj0WYma P7pcPfAjC/aLbI= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id:mime-version :content-type; s=default; bh=xlZ5nHEFI0hjTctCvT+61OwNh5k=; b=IwC QJ7R30hhvxbHjbAygogYjsJ5+97sa6FBXWb1ofr8KwNkoqAKoD+/132IJV6NAz32 zGpUI+qfdtDdDUIy1CXYS6LmJvle2mrOoon+ZXCS/WPfQ4o+L9lLt9PHLSITZUYC q9LJfd2Ri8SGH+xJGi3N5XpOZFIZUlyU7GGoiQOQ= Received: (qmail 106247 invoked by alias); 1 Dec 2018 20:13:47 -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 106132 invoked by uid 89); 1 Dec 2018 20:13:46 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=virtually, *dst, *src X-HELO: mx1.redhat.com From: Florian Weimer To: libc-alpha@sourceware.org Subject: [PATCH] resolv: Remove compat-gethnamddr.c address sorting code Date: Sat, 01 Dec 2018 21:13:33 +0100 Message-ID: <87a7lpm2du.fsf@oldenburg.str.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Address sorting is virtually unused and has hardly any visible effect, so let's do not keep it for these compatibility symbols. (Address sorting for NSS-based interfaces is unaffected by this.) 2018-12-01 Florian Weimer * resolv/compat-gethnamaddr.c (addrsort): Remove. (getanswer): Do not call addrsort. diff --git a/resolv/compat-gethnamaddr.c b/resolv/compat-gethnamaddr.c index 0e24dcbbcc..cddda2b353 100644 --- a/resolv/compat-gethnamaddr.c +++ b/resolv/compat-gethnamaddr.c @@ -91,8 +91,6 @@ static struct hostent *res_gethostbyname2_context (struct resolv_context *, static void map_v4v6_address (const char *src, char *dst) __THROW; static void map_v4v6_hostent (struct hostent *hp, char **bp, int *len) __THROW; -extern void addrsort (char **, int) __THROW; - # if PACKETSZ > 65536 # define MAXPACKET PACKETSZ # else @@ -379,13 +377,6 @@ getanswer (const querybuf *answer, int anslen, const char *qname, int qtype) if (haveanswer) { *ap = NULL; *hap = NULL; - /* - * Note: we sort even if host can take only one address - * in its return structures - should give it the "best" - * address in that case, not some random one - */ - if (_res.nsort && haveanswer > 1 && qtype == T_A) - addrsort(h_addr_ptrs, haveanswer); if (!host.h_name) { n = strlen(qname) + 1; /* for the \0 */ if (n > buflen || n >= MAXHOSTNAMELEN) @@ -871,45 +862,4 @@ map_v4v6_hostent (struct hostent *hp, char **bpp, int *lenp) } } -extern void -addrsort (char **ap, int num) -{ - int i, j; - char **p; - short aval[MAXADDRS]; - int needsort = 0; - - p = ap; - for (i = 0; i < num; i++, p++) { - for (j = 0 ; (unsigned)j < _res.nsort; j++) - if (_res.sort_list[j].addr.s_addr == - (((struct in_addr *)(*p))->s_addr & _res.sort_list[j].mask)) - break; - aval[i] = j; - if (needsort == 0 && i > 0 && j < aval[i-1]) - needsort = i; - } - if (!needsort) - return; - - while (needsort < num) { - for (j = needsort - 1; j >= 0; j--) { - if (aval[j] > aval[j+1]) { - char *hp; - - i = aval[j]; - aval[j] = aval[j+1]; - aval[j+1] = i; - - hp = ap[j]; - ap[j] = ap[j+1]; - ap[j+1] = hp; - - } else - break; - } - needsort++; - } -} - #endif /* SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_25) */