From patchwork Sun Mar 24 12:21:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Konstantin Kharlamov X-Patchwork-Id: 1063130 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-100858-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=yandex.ru Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="V22zWKRM"; dkim=pass (1024-bit key; unprotected) header.d=yandex.ru header.i=@yandex.ru header.b="S6Ut5ttL"; 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 44RxNP6Xtfz9sSc for ; Sun, 24 Mar 2019 23:22:13 +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:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=BxWh6zD/dqo7v2h8RY59EjtYjUwmAimJ2229Z76TpFIkU9CU1b+ZE QYMQS4+RxdRnfk+OQ/5+96vvTOQmHZKoIZo0McctTArr8mKn9/OCbvilR2uXLK8W bPbV5o73mstT6fkPjECL7AtEFejbc5scZ9iO3HgwSdLYvd0H9EPRKs= 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:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=j4xv0dCtJIu6sg9aAvVJckWRDFw=; b=V22zWKRMuEO9YW62lnOrBrJMM5k0 KS+PXfqizfCaI/i6phMrd2zsiJ4/Uu+68nNbP1kBGymdRiIW4LUg8waYqi8mmmYB plPn4IDa6c3MvmeNBUl8Y5nN3IaF+HnoutQDwLW1jQz9Rl4ESTpOog6iWdy57zBW afIE0NvWzpe3Tdo= Received: (qmail 3989 invoked by alias); 24 Mar 2019 12:21:37 -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 3895 invoked by uid 89); 24 Mar 2019 12:21:36 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-27.6 required=5.0 tests=BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.1 spammy=databases, Apply, defaults, servers X-HELO: forward104p.mail.yandex.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1553430092; bh=EC4VuuqPQ+5TDkqhIS51IfLFvwU70dsuA9LxoYjrv6U=; h=In-Reply-To:Subject:To:From:References:Date:Message-Id; b=S6Ut5ttLRy/uar2phf1aGXqXOAHhGixvO6KqInAM/ecICJTysTUc7mXxUQhHegrP3 LCmzSEAJ6V/RCGleDjolMpaN+V/9ZtCkMqJjRyG2yVh5JqSX5a5d/QCPbBjbCRozht 3YJXBNvF1C8ry8vkSrWu6sqIVNHC47zgoNWUm4OM= Authentication-Results: mxback13g.mail.yandex.net; dkim=pass header.i=@yandex.ru From: Konstantin Kharlamov To: libc-alpha@sourceware.org Subject: [PATCH 2/5] support: don't pass to resolv_test_start a big struct by value Date: Sun, 24 Mar 2019 15:21:18 +0300 Message-Id: <20190324122121.6430-3-Hi-Angel@yandex.ru> In-Reply-To: <20190324122121.6430-1-Hi-Angel@yandex.ru> References: <20190324122121.6430-1-Hi-Angel@yandex.ru> MIME-Version: 1.0 Fixes LGTM warning: "This parameter of type resolv_redirect_config is 88 bytes - consider passing a const pointer/reference instead." Signed-off-by: Konstantin Kharlamov --- support/resolv_test.c | 33 ++++++++++++++++----------------- support/resolv_test.h | 2 +- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/support/resolv_test.c b/support/resolv_test.c index f400026cd1..ab4af9b684 100644 --- a/support/resolv_test.c +++ b/support/resolv_test.c @@ -1103,44 +1103,43 @@ set_search_path (const struct resolv_redirect_config* config) } struct resolv_test * -resolv_test_start (struct resolv_redirect_config config) +resolv_test_start (const struct resolv_redirect_config *config) { /* Apply configuration defaults. */ - if (config.nscount == 0) - config.nscount = resolv_max_test_servers; + const int nscount = (config->nscount == 0)? resolv_max_test_servers : 0; struct resolv_test *obj = xmalloc (sizeof (*obj)); *obj = (struct resolv_test) { - .config = config, + .config = *config, .lock = PTHREAD_MUTEX_INITIALIZER, }; - if (!config.disable_redirect) + if (!config->disable_redirect) resolv_test_init (); /* Create all the servers, to reserve the necessary ports. */ - for (int server_index = 0; server_index < config.nscount; ++server_index) - if (config.disable_redirect && config.server_address_overrides != NULL) + for (int server_index = 0; server_index < nscount; ++server_index) + if (config->disable_redirect && config->server_address_overrides != NULL) make_server_sockets_for_address (obj->servers + server_index, - config.server_address_overrides[server_index]); + config->server_address_overrides[server_index]); else make_server_sockets (obj->servers + server_index); /* Start server threads. Disable the server ports, as requested. */ - for (int server_index = 0; server_index < config.nscount; ++server_index) + for (int server_index = 0; server_index < nscount; ++server_index) { struct resolv_test_server *server = obj->servers + server_index; - if (config.servers[server_index].disable_udp) + if (config->servers[server_index].disable_udp) { xclose (server->socket_udp); server->socket_udp = -1; } - else if (!config.single_thread_udp) + else if (!config->single_thread_udp) server->thread_udp = start_server_thread (obj, server_index, server_thread_udp); - if (config.servers[server_index].disable_tcp) + if (config->servers[server_index].disable_tcp) { xclose (server->socket_tcp); server->socket_tcp = -1; @@ -1149,10 +1148,10 @@ resolv_test_start (struct resolv_redirect_config config) server->thread_tcp = start_server_thread (obj, server_index, server_thread_tcp); } - if (config.single_thread_udp) + if (config->single_thread_udp) start_server_thread_udp_single (obj); - if (config.disable_redirect) + if (config->disable_redirect) return obj; int timeout = 1; @@ -1176,7 +1175,7 @@ resolv_test_start (struct resolv_redirect_config config) } _res.retrans = timeout; _res.retry = 4; - _res.nscount = config.nscount; + _res.nscount = nscount; _res.options = RES_INIT | RES_RECURSE | RES_DEFNAMES | RES_DNSRCH; _res.ndots = 1; if (test_verbose) @@ -1187,7 +1186,7 @@ resolv_test_start (struct resolv_redirect_config config) printf ("info: new _res.nscount value: %d\n", _res.nscount); printf ("info: new _res.ndots value: %d\n", _res.ndots); } - for (int server_index = 0; server_index < config.nscount; ++server_index) + for (int server_index = 0; server_index < nscount; ++server_index) { TEST_VERIFY_EXIT (obj->servers[server_index].address.sin_port != 0); _res.nsaddr_list[server_index] = obj->servers[server_index].address; @@ -1203,7 +1202,7 @@ resolv_test_start (struct resolv_redirect_config config) } } - set_search_path (&config); + set_search_path (config); return obj; } diff --git a/support/resolv_test.h b/support/resolv_test.h index c9e48205ab..880330ad5c 100644 --- a/support/resolv_test.h +++ b/support/resolv_test.h @@ -116,7 +116,7 @@ void resolv_test_init (void); needed. As a side effect, NSS is reconfigured to use nss_dns only for aplicable databases, and the process may enter a network namespace for better isolation. */ -struct resolv_test *resolv_test_start (struct resolv_redirect_config); +struct resolv_test *resolv_test_start (const struct resolv_redirect_config*); /* Call this function at the end of resolver testing, to free resources and report pending errors (if any). */