git: f42188552c77 - stable/13 - sbin/ifconfig: Get carp status with libifconfig

Ryan Moeller freqlabs at FreeBSD.org
Sun Mar 14 09:09:49 UTC 2021


The branch stable/13 has been updated by freqlabs:

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

commit f42188552c7784b6a0e14d591d0e3951164b5326
Author:     Ryan Moeller <freqlabs at FreeBSD.org>
AuthorDate: 2021-02-26 23:40:58 +0000
Commit:     Ryan Moeller <freqlabs at FreeBSD.org>
CommitDate: 2021-03-14 08:07:35 +0000

    sbin/ifconfig: Get carp status with libifconfig
    
    A trivial change now that ifconfig is already using libifconfig.
    Reviewed by:    kp (earlier version)
    Differential Revision:  https://reviews.freebsd.org/D28955
    
    (cherry picked from commit da393346ac47b22b5f8af4040a59971faadd2c5c)
---
 sbin/ifconfig/carp.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/sbin/ifconfig/carp.c b/sbin/ifconfig/carp.c
index dcf966d873ee..d6f8d78ba920 100644
--- a/sbin/ifconfig/carp.c
+++ b/sbin/ifconfig/carp.c
@@ -50,6 +50,8 @@
 #include <err.h>
 #include <errno.h>
 
+#include <libifconfig.h>
+
 #include "ifconfig.h"
 
 static const char *carp_states[] = { CARP_STATES };
@@ -71,16 +73,16 @@ static void
 carp_status(int s)
 {
 	struct carpreq carpr[CARP_MAXVHID];
-	int i;
+	ifconfig_handle_t *lifh;
 
-	bzero(carpr, sizeof(struct carpreq) * CARP_MAXVHID);
-	carpr[0].carpr_count = CARP_MAXVHID;
-	ifr.ifr_data = (caddr_t)&carpr;
-
-	if (ioctl(s, SIOCGVH, (caddr_t)&ifr) == -1)
+	lifh = ifconfig_open();
+	if (lifh == NULL)
 		return;
 
-	for (i = 0; i < carpr[0].carpr_count; i++) {
+	if (ifconfig_carp_get_info(lifh, name, carpr, CARP_MAXVHID) == -1)
+		goto close;
+
+	for (size_t i = 0; i < carpr[0].carpr_count; i++) {
 		printf("\tcarp: %s vhid %d advbase %d advskew %d",
 		    carp_states[carpr[i].carpr_state], carpr[i].carpr_vhid,
 		    carpr[i].carpr_advbase, carpr[i].carpr_advskew);
@@ -89,6 +91,8 @@ carp_status(int s)
 		else
 			printf("\n");
 	}
+close:
+	ifconfig_close(lifh);
 }
 
 static void


More information about the dev-commits-src-all mailing list