The branch main has been updated by freqlabs:

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

commit b12a960e4274926171dc7a4f9887a0d0a5195b44
Author:     Ryan Moeller <freql...@freebsd.org>
AuthorDate: 2021-02-28 09:34:30 +0000
Commit:     Ryan Moeller <freql...@freebsd.org>
CommitDate: 2021-02-28 21:43:54 +0000

    libifconfig: Add a function to get down reason
    
    For use in ifconfig.
    
    Reviewed by:    kp
    MFC after:      2 weeks
    Differential Revision:  https://reviews.freebsd.org/D28991
---
 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 4f82c8185d0b..b3e81d6ee497 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));
+}
_______________________________________________
dev-commits-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-all
To unsubscribe, send any mail to "dev-commits-src-all-unsubscr...@freebsd.org"

Reply via email to