From nobody Sat May 14 13:28:47 2022 X-Original-To: dev-commits-src-main@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 46BA81AE1EAD; Sat, 14 May 2022 13:28:48 +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 4L0mYq70Sdz4fmP; Sat, 14 May 2022 13:28:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1652534928; 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=0VwE5GymK7th0fUASkZWYB3RTsaVaz8lD4RiGET+BAY=; b=Ib+LsSeTBWmWas5PFchwZLiRTfdht7nl0QsLtPoWFn87bkgUykVBQ5tHY6L11JpRAg3Q3M XBGFSHhZkf02uurhegd5POBKr1RSsbhNIADkjkhVWkH1VAtz9atAXomUI6FQjx2a0fty3L S++4T2FtRqBThlQ7POg38v9L2ccmwb29ae9QQcALhUclZP/uVzijgGNT3GN6AjOnrUUlO5 0xexBbNS9REl/kZXHKdueZgX7NXcA4itTEqsU6oLcwGH1ArQR/FDWd2hDGYUygHzUN1JNe OJsLVtElWRD/xeoEQqyN7R7NlqUM0ef1LHoXoXEUMpGuax1Y/JVDiatUC1VzvQ== 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 9071E17CDA; Sat, 14 May 2022 13:28:47 +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 24EDSldj051371; Sat, 14 May 2022 13:28:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 24EDSlW1051370; Sat, 14 May 2022 13:28:47 GMT (envelope-from git) Date: Sat, 14 May 2022 13:28:47 GMT Message-Id: <202205141328.24EDSlW1051370@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mitchell Horne Subject: git: 6543fa5a5c47 - main - dumpon: warn if the configured netdump link is down List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6543fa5a5c47cfbea92586f0994431fc8ba09f6a Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1652534928; 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=0VwE5GymK7th0fUASkZWYB3RTsaVaz8lD4RiGET+BAY=; b=gOEfwXTpylYRGoijgpvFIg7H9jI+gpCuOky5b5wKtiHO5RExcL2AJkPvp3Dbrpl9cSl5SD EJbweUdpMpj8BfKSLINnsceO+LnnhRZLye210aTORD7lc4YxhzGjZIziOv3RvyNGd5ihbI 9T9EG2OzYU/CxAxZ1W57gWzWZCoZ2+soDOWn5KHcoSWamVaTEfB3HlWGACUbOtJzA/Uts8 ca2E+ZA2Iar3hZk1LkrdbSS3nQL/IvNSZEEekjt5Bd8uZ52+p8BQHLVxYGuU6FDKO/YOjW en/cLmtiOq6kVEePphi0Mf8W3y6Zo0dJ9yiKOo20Q+5qeGkfYFEoXy1Pi4aijg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1652534928; a=rsa-sha256; cv=none; b=RjxIY5137j07fkCuOJUjAtQSOzjoCg2D3AuBeyVDmXKJi1S1vXE2MvEM1Oy6w+oE7r++Ik q2Qh0OiFlgrqckGqROnGQcoCelZBtuEHHndjUaMWw0ZsW4PmLraHEMuYGNVUisOXQlzoqP W5mDlUkXw1JZMsRYVd/fz6dgnAVV+osD8zMtvC2Q8sANM0IqYAvtx6UW1L465ZvGjRqINP 6nShuCsfvZyNVDCNN6BdcbqIufX2+b8GtIXhIjmnLf+xOp0xxZDQlL+ZRu5iEKu8dUIV8w AqpNz+llgkuBG4aomK0CiUANp0nb7pFcNxOlvinL4E1ReAEuzd6TZth6xbgjrQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=6543fa5a5c47cfbea92586f0994431fc8ba09f6a commit 6543fa5a5c47cfbea92586f0994431fc8ba09f6a Author: Mitchell Horne AuthorDate: 2022-05-14 13:25:21 +0000 Commit: Mitchell Horne CommitDate: 2022-05-14 13:27:54 +0000 dumpon: warn if the configured netdump link is down Previously we expected the DIOCSKERNELDUMP ioctl to return ENXIO if the interface was down, but it does not actually do this. Grab the link status using getifaddrs(3) instead, and downgrade this case from an error to a warning; the user might bring the link back up at a later time. Reviewed by: cem MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D35196 --- sbin/dumpon/dumpon.c | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/sbin/dumpon/dumpon.c b/sbin/dumpon/dumpon.c index 7d8f81d5eaaf..626350427595 100644 --- a/sbin/dumpon/dumpon.c +++ b/sbin/dumpon/dumpon.c @@ -186,6 +186,25 @@ find_gateway(const char *ifname) return (ret); } +static void +check_link_status(const char *ifname) +{ + struct ifaddrs *ifap, *ifa; + + if (getifaddrs(&ifap) != 0) + err(EX_OSERR, "getifaddrs"); + + for (ifa = ifap; ifa != NULL; ifa = ifa->ifa_next) { + if (strcmp(ifname, ifa->ifa_name) != 0) + continue; + if ((ifa->ifa_flags & IFF_UP) == 0) { + warnx("warning: %s's link is down", ifname); + } + break; + } + freeifaddrs(ifap); +} + static void check_size(int fd, const char *fn) { @@ -659,6 +678,9 @@ main(int argc, char *argv[]) else error = errno; } + /* Emit a warning if the user configured a downed interface. */ + if (error == 0 && netdump) + check_link_status(kdap->kda_iface); explicit_bzero(kdap->kda_encryptedkey, kdap->kda_encryptedkeysize); free(kdap->kda_encryptedkey); explicit_bzero(kdap, sizeof(*kdap)); @@ -669,10 +691,7 @@ main(int argc, char *argv[]) * errors, especially as users don't have any great * discoverability into which NICs support netdump. */ - if (error == ENXIO) - errx(EX_OSERR, "Unable to configure netdump " - "because the interface's link is down."); - else if (error == ENODEV) + if (error == ENODEV) errx(EX_OSERR, "Unable to configure netdump " "because the interface driver does not yet " "support netdump.");