Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 Mar 2021 09:09:50 GMT
From:      Ryan Moeller <freqlabs@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: ca459d253fa3 - stable/13 - libifconfig: Add a function to get down reason
Message-ID:  <202103140909.12E99oEo078396@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/13 has been updated by freqlabs:

URL: https://cgit.FreeBSD.org/src/commit/?id=ca459d253fa3128426383b13b7a51e9a05c09bcb

commit ca459d253fa3128426383b13b7a51e9a05c09bcb
Author:     Ryan Moeller <freqlabs@FreeBSD.org>
AuthorDate: 2021-02-28 09:34:30 +0000
Commit:     Ryan Moeller <freqlabs@FreeBSD.org>
CommitDate: 2021-03-14 08:08:29 +0000

    libifconfig: Add a function to get down reason
    
    For use in ifconfig.
    
    Reviewed by:    kp
    Differential Revision:  https://reviews.freebsd.org/D28991
    
    (cherry picked from commit b12a960e4274926171dc7a4f9887a0d0a5195b44)
---
 lib/libifconfig/Symbol.map          |  1 +
 lib/libifconfig/libifconfig.h       |  9 +++++++++
 lib/libifconfig/libifconfig_media.c | 10 ++++++++++
 3 files changed, 20 insertions(+)

diff --git a/lib/libifconfig/Symbol.map b/lib/libifconfig/Symbol.map
index ec1ccec7f95c..782f78ec5e34 100644
--- a/lib/libifconfig/Symbol.map
+++ b/lib/libifconfig/Symbol.map
@@ -31,6 +31,7 @@ FBSD_1.6 {
 	ifconfig_media_get_status;
 	ifconfig_media_get_subtype;
 	ifconfig_media_get_type;
+	ifconfig_media_get_downreason;
 	ifconfig_open;
 	ifconfig_set_capability;
 	ifconfig_set_description;
diff --git a/lib/libifconfig/libifconfig.h b/lib/libifconfig/libifconfig.h
index 46a13ae27d69..d8245ea13b23 100644
--- a/lib/libifconfig/libifconfig.h
+++ b/lib/libifconfig/libifconfig.h
@@ -207,6 +207,15 @@ const char *ifconfig_media_get_subtype(int ifmw);
 const char *ifconfig_media_get_status(const struct ifmediareq *ifmr);
 void ifconfig_media_get_options_string(int ifmw, char *buf, size_t buflen);
 
+/** Retrieve the reason the interface is down
+ * @param h	An open ifconfig state object
+ * @param name	The interface name
+ * @param ifdr	Return argument.
+ * @return	0 on success, nonzero on failure
+ */
+int ifconfig_media_get_downreason(ifconfig_handle_t *h, const char *name,
+    struct ifdownreason *ifdr);
+
 int ifconfig_carp_get_info(ifconfig_handle_t *h, const char *name,
     struct carpreq *carpr, int ncarpr);
 
diff --git a/lib/libifconfig/libifconfig_media.c b/lib/libifconfig/libifconfig_media.c
index f7302d8a9b24..d7ef507604be 100644
--- a/lib/libifconfig/libifconfig_media.c
+++ b/lib/libifconfig/libifconfig_media.c
@@ -392,3 +392,13 @@ ifconfig_media_get_options_string(int ifmw, char *buf, size_t buflen)
 		}
 	}
 }
+
+int
+ifconfig_media_get_downreason(ifconfig_handle_t *h, const char *name,
+    struct ifdownreason *ifdr)
+{
+
+	(void)memset(ifdr, 0, sizeof(*ifdr));
+	(void)strlcpy(ifdr->ifdr_name, name, sizeof(ifdr->ifdr_name));
+	return (ifconfig_ioctlwrap(h, AF_LOCAL, SIOCGIFDOWNREASON, ifdr));
+}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202103140909.12E99oEo078396>