From nobody Wed May 10 12:22:55 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QGZ1C742Mz49qBv; Wed, 10 May 2023 12:22:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QGZ1C6TrHz3JmB; Wed, 10 May 2023 12:22:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1683721375; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Z+g/qwugVcR/ezNEtG9Pl8d3h96kzwu4vTmGlrbSQ0I=; b=aK+TaU6cW9Fm4N33Pnv50/qPdx6M98DhInUTz6T7EeToraEyn6QBnbUeS0Kd5aYMw++oW0 Y0wCEZ+9nULQDVWjKE2vQX3AMLv/lHBk2Or1TqverIqxOU9v5jAbAy7eIwm9x0kTD83avM 3vFxkpsb8ydoKGNvnbgsjMu9/ddjpImq/fv4W1D4UMah/8+LocqDmvqZG4lfFar52sTMyQ nvox5sx+omlN6bFuOwSk2UpLu8Ti+IPBYXPU0/whEe2d9JTX1uQitREfg2WK5LWYwza1ml EqRoYS7v4uAYt1wS4rwdAgKs5g4sRB7BxotGmUlmccWGFWuAV8OziBASaLH0rw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1683721375; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Z+g/qwugVcR/ezNEtG9Pl8d3h96kzwu4vTmGlrbSQ0I=; b=r9H9bPwjrFocIG8yo3spPtcsMY+QQHiLH/BEozbkwwHg/B8wo53E8oxx9vDoZIvQDjLWmd KwtPlnwfS7KVPj30xcejyuaD6UbUaD3dMlsY1/eVK4Mkrt/DU8bdJFvpKsFgYk6t9x3qJ/ yJ03uKjq3TlfM0OMLdaRTWNT6vAbmIZNatLzo9jelSAmtk2X+qYKpnYAPIJha2TtHLZjfh Sarm8ZnoYrbEPccmImrVh94sl3AcGYhXEoszbIryJL3JyotOMYokY4FQWkiOzJ6rR/gQcn qgcgjuMXvf0LgaJMHa/ej8JbTTwFdWB/cF65wxDdyGvTWd1tmlUSpSF3TheKKw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1683721375; a=rsa-sha256; cv=none; b=eZvqHlFwrpfNbBPCdBjkhR/lW/PKv3qIr9+33pWFuPtC+UgYtieGAlYSQ+4Yao8Q52kJ5P k4JmzIPiZN+ThiGPCsYg6HGVEzvprnmIngvxGnihjn4tUgwNJknUUPZRrePTJdscafZ/bu SGQM5OKbnlsR4xteD2hwsNOn+NBCpE464+PXX+aFOuyxbgeUpprRvV+VaAwntTpLuYz/bo YOiVFpdbAiOeSD6+VTHK+S64Sv/bnvHHWFsI1v3dvFSBCwz9jMDKtK/pCcsiC2E1c3Vh33 idoiQONfvMv4G/nLTb3OZ195jqSvtr2NZyfDka1sxy/KGqjldENAjEfhsZrE1g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QGZ1C5XT1z18hb; Wed, 10 May 2023 12:22:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34ACMtYL089676; Wed, 10 May 2023 12:22:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34ACMtCj089675; Wed, 10 May 2023 12:22:55 GMT (envelope-from git) Date: Wed, 10 May 2023 12:22:55 GMT Message-Id: <202305101222.34ACMtCj089675@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: a3cb80bc6363 - main - ifconfig: fix interface selection after 982cd5ae8ef6. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a3cb80bc63632064a3bb47a873ccdd0f1f1d51a9 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=a3cb80bc63632064a3bb47a873ccdd0f1f1d51a9 commit a3cb80bc63632064a3bb47a873ccdd0f1f1d51a9 Author: Alexander V. Chernikov AuthorDate: 2023-05-10 12:06:10 +0000 Commit: Alexander V. Chernikov CommitDate: 2023-05-10 12:22:39 +0000 ifconfig: fix interface selection after 982cd5ae8ef6. --- sbin/ifconfig/ifconfig.c | 29 +++++++++++++---------------- sbin/ifconfig/ifconfig.h | 1 + 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c index 88c720223c32..5456587c13ef 100644 --- a/sbin/ifconfig/ifconfig.c +++ b/sbin/ifconfig/ifconfig.c @@ -412,7 +412,6 @@ main(int argc, char *argv[]) const struct afswtch *afp = NULL; int ifindex; char options[1024], *envformat; - const char *ifname; struct option *p; size_t iflen; int flags; @@ -516,7 +515,6 @@ main(int argc, char *argv[]) if (argc > 1) usage(); - ifname = NULL; ifindex = 0; if (argc == 1) { afp = af_getbyname(*argv); @@ -533,13 +531,13 @@ main(int argc, char *argv[]) if (argc < 1) usage(); - ifname = *argv; + args.ifname = *argv; argc--, argv++; /* check and maybe load support for this interface */ - ifmaybeload(&args, ifname); + ifmaybeload(&args, args.ifname); - ifindex = if_nametoindex(ifname); + ifindex = if_nametoindex(args.ifname); if (ifindex == 0) { /* * NOTE: We must special-case the `create' command @@ -548,10 +546,10 @@ main(int argc, char *argv[]) */ if (argc > 0 && (strcmp(argv[0], "create") == 0 || strcmp(argv[0], "plumb") == 0)) { - iflen = strlcpy(name, ifname, sizeof(name)); + iflen = strlcpy(name, args.ifname, sizeof(name)); if (iflen >= sizeof(name)) errx(1, "%s: cloning name too long", - ifname); + args.ifname); ifconfig(argc, argv, 1, NULL); exit(exit_code); } @@ -562,15 +560,15 @@ main(int argc, char *argv[]) * to find the interface as it lives in another vnet. */ if (argc > 0 && (strcmp(argv[0], "-vnet") == 0)) { - iflen = strlcpy(name, ifname, sizeof(name)); + iflen = strlcpy(name, args.ifname, sizeof(name)); if (iflen >= sizeof(name)) errx(1, "%s: interface name too long", - ifname); + args.ifname); ifconfig(argc, argv, 0, NULL); exit(exit_code); } #endif - errx(1, "interface %s does not exist", ifname); + errx(1, "interface %s does not exist", args.ifname); } else { /* * Do not allow use `create` command as hostname if @@ -580,7 +578,7 @@ main(int argc, char *argv[]) strcmp(argv[0], "plumb") == 0)) { if (argc == 1) errx(1, "interface %s already exists", - ifname); + args.ifname); argc--, argv++; } } @@ -598,10 +596,10 @@ main(int argc, char *argv[]) * which doesn't require building, sorting, and searching the entire * system address list */ - if ((argc > 0) && (ifname != NULL)) { - iflen = strlcpy(name, ifname, sizeof(name)); + if ((argc > 0) && (args.ifname != NULL)) { + iflen = strlcpy(name, args.ifname, sizeof(name)); if (iflen >= sizeof(name)) { - warnx("%s: interface name too long, skipping", ifname); + warnx("%s: interface name too long, skipping", args.ifname); } else { flags = getifflags(name, -1, false); if (!(((flags & IFF_CANTCONFIG) != 0) || @@ -650,7 +648,6 @@ list_interfaces(struct ifconfig_args *args) for (ifa = sifap; ifa; ifa = ifa->ifa_next) { struct ifreq paifr = {}; const struct sockaddr_dl *sdl; - const char *ifname; strlcpy(paifr.ifr_name, ifa->ifa_name, sizeof(paifr.ifr_name)); if (sizeof(paifr.ifr_addr) >= ifa->ifa_addr->sa_len) { @@ -658,7 +655,7 @@ list_interfaces(struct ifconfig_args *args) ifa->ifa_addr->sa_len); } - if (ifname != NULL && strcmp(ifname, ifa->ifa_name) != 0) + if (args->ifname != NULL && strcmp(args->ifname, ifa->ifa_name) != 0) continue; if (ifa->ifa_addr->sa_family == AF_LINK) sdl = (const struct sockaddr_dl *) ifa->ifa_addr; diff --git a/sbin/ifconfig/ifconfig.h b/sbin/ifconfig/ifconfig.h index e1cd8a628f9a..b58b577f4328 100644 --- a/sbin/ifconfig/ifconfig.h +++ b/sbin/ifconfig/ifconfig.h @@ -194,6 +194,7 @@ struct ifconfig_args { int verbose; /* verbosity level */ int argc; char **argv; + const char *ifname; /* Requested interface name */ const char *matchgroup; /* Group name to match */ const char *nogroup; /* Group name to exclude */ const struct afswtch *afp; /* AF we're operating on */