Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F144762185
D28990.id.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
5 KB
Referenced Files
None
Subscribers
None
D28990.id.diff
View Options
diff --git a/sbin/ifconfig/carp.c b/sbin/ifconfig/carp.c
--- a/sbin/ifconfig/carp.c
+++ b/sbin/ifconfig/carp.c
@@ -73,14 +73,9 @@
carp_status(int s)
{
struct carpreq carpr[CARP_MAXVHID];
- ifconfig_handle_t *lifh;
-
- lifh = ifconfig_open();
- if (lifh == NULL)
- return;
if (ifconfig_carp_get_info(lifh, name, carpr, CARP_MAXVHID) == -1)
- goto close;
+ return;
for (size_t i = 0; i < carpr[0].carpr_count; i++) {
printf("\tcarp: %s vhid %d advbase %d advskew %d",
@@ -91,8 +86,6 @@
else
printf("\n");
}
-close:
- ifconfig_close(lifh);
}
static void
diff --git a/sbin/ifconfig/ifbridge.c b/sbin/ifconfig/ifbridge.c
--- a/sbin/ifconfig/ifbridge.c
+++ b/sbin/ifconfig/ifbridge.c
@@ -156,19 +156,14 @@
static void
bridge_status(int s)
{
- ifconfig_handle_t *lifh;
struct ifconfig_bridge_status *bridge;
struct ifbropreq *params;
const char *pad, *prefix;
uint8_t lladdr[ETHER_ADDR_LEN];
uint16_t bprio;
- lifh = ifconfig_open();
- if (lifh == NULL)
- return;
-
if (ifconfig_bridge_get_bridge_status(lifh, name, &bridge) == -1)
- goto close;
+ return;
params = bridge->params;
@@ -227,8 +222,6 @@
}
ifconfig_bridge_free_bridge_status(bridge);
-close:
- ifconfig_close(lifh);
}
static void
diff --git a/sbin/ifconfig/ifclone.c b/sbin/ifconfig/ifclone.c
--- a/sbin/ifconfig/ifclone.c
+++ b/sbin/ifconfig/ifclone.c
@@ -57,17 +57,11 @@
static void
list_cloners(void)
{
- ifconfig_handle_t *lifh;
char *cloners;
size_t cloners_count;
- lifh = ifconfig_open();
- if (lifh == NULL)
- return;
-
if (ifconfig_list_cloners(lifh, &cloners, &cloners_count) < 0)
errc(1, ifconfig_err_errno(lifh), "unable to list cloners");
- ifconfig_close(lifh);
for (const char *name = cloners;
name < cloners + cloners_count * IFNAMSIZ;
diff --git a/sbin/ifconfig/ifconfig.h b/sbin/ifconfig/ifconfig.h
--- a/sbin/ifconfig/ifconfig.h
+++ b/sbin/ifconfig/ifconfig.h
@@ -36,6 +36,10 @@
* $FreeBSD$
*/
+#pragma once
+
+#include <libifconfig.h>
+
#define __constructor __attribute__((constructor))
struct afswtch;
@@ -128,6 +132,7 @@
};
void opt_register(struct option *);
+extern ifconfig_handle_t *lifh;
extern struct ifreq ifr;
extern char name[IFNAMSIZ]; /* name of interface */
extern int allmedia;
diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c
--- a/sbin/ifconfig/ifconfig.c
+++ b/sbin/ifconfig/ifconfig.c
@@ -78,8 +78,12 @@
#include <string.h>
#include <unistd.h>
+#include <libifconfig.h>
+
#include "ifconfig.h"
+ifconfig_handle_t *lifh;
+
/*
* Since "struct ifreq" is composed of various union members, callers
* should pay special attention to interpret the value.
@@ -427,6 +431,10 @@
f_inet = f_inet6 = f_ether = f_addr = NULL;
matchgroup = nogroup = NULL;
+ lifh = ifconfig_open();
+ if (lifh == NULL)
+ err(EXIT_FAILURE, "ifconfig_open");
+
envformat = getenv("IFCONFIG_FORMAT");
if (envformat != NULL)
setformat(envformat);
@@ -699,6 +707,7 @@
done:
freeformat();
+ ifconfig_close(lifh);
exit(exit_code);
}
diff --git a/sbin/ifconfig/ifgroup.c b/sbin/ifconfig/ifgroup.c
--- a/sbin/ifconfig/ifgroup.c
+++ b/sbin/ifconfig/ifgroup.c
@@ -86,16 +86,11 @@
static void
getifgroups(int s)
{
- ifconfig_handle_t *lifh;
struct ifgroupreq ifgr;
size_t cnt;
- lifh = ifconfig_open();
- if (lifh == NULL)
- return;
-
if (ifconfig_get_groups(lifh, name, &ifgr) == -1)
- goto close;
+ return;
cnt = 0;
for (size_t i = 0; i < ifgr.ifgr_len / sizeof(struct ifg_req); ++i) {
@@ -112,8 +107,6 @@
printf("\n");
free(ifgr.ifgr_groups);
-close:
- ifconfig_close(lifh);
}
static void
diff --git a/sbin/ifconfig/iflagg.c b/sbin/ifconfig/iflagg.c
--- a/sbin/ifconfig/iflagg.c
+++ b/sbin/ifconfig/iflagg.c
@@ -219,7 +219,6 @@
lagg_status(int s)
{
struct lagg_protos protos[] = LAGG_PROTOS;
- ifconfig_handle_t *lifh;
struct ifconfig_lagg_status *lagg;
struct lagg_reqall *ra;
struct lagg_reqflags *rf;
@@ -228,12 +227,8 @@
struct lacp_opreq *lp;
const char *proto;
- lifh = ifconfig_open();
- if (lifh == NULL)
- return;
-
if (ifconfig_lagg_get_lagg_status(lifh, name, &lagg) == -1)
- goto close;
+ return;
ra = lagg->ra;
rf = lagg->rf;
@@ -297,8 +292,6 @@
}
ifconfig_lagg_free_lagg_status(lagg);
-close:
- ifconfig_close(lifh);
}
static
diff --git a/sbin/ifconfig/sfp.c b/sbin/ifconfig/sfp.c
--- a/sbin/ifconfig/sfp.c
+++ b/sbin/ifconfig/sfp.c
@@ -61,15 +61,10 @@
struct ifconfig_sfp_info_strings strings;
struct ifconfig_sfp_vendor_info vendor_info;
struct ifconfig_sfp_status status;
- ifconfig_handle_t *lifh;
size_t channel_count;
- lifh = ifconfig_open();
- if (lifh == NULL)
- return;
-
if (ifconfig_sfp_get_sfp_info(lifh, name, &info) == -1)
- goto close;
+ return;
ifconfig_sfp_get_sfp_info_strings(&info, &strings);
@@ -79,7 +74,7 @@
strings.sfp_conn);
if (ifconfig_sfp_get_sfp_vendor_info(lifh, name, &vendor_info) == -1)
- goto close;
+ return;
printf("\tvendor: %s PN: %s SN: %s DATE: %s\n",
vendor_info.name, vendor_info.pn, vendor_info.sn, vendor_info.date);
@@ -118,7 +113,7 @@
struct ifconfig_sfp_dump dump;
if (ifconfig_sfp_get_sfp_dump(lifh, name, &dump) == -1)
- goto close;
+ return;
if (ifconfig_sfp_id_is_qsfp(info.sfp_id)) {
printf("\n\tSFF8436 DUMP (0xA0 128..255 range):\n");
@@ -133,7 +128,4 @@
"\t", HD_OMIT_COUNT | HD_OMIT_CHARS);
}
}
-
-close:
- ifconfig_close(lifh);
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Feb 13, 7:05 AM (9 h, 59 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28674929
Default Alt Text
D28990.id.diff (5 KB)
Attached To
Mode
D28990: sbin/ifconfig: Use a global handle for libifconfig
Attached
Detach File
Event Timeline
Log In to Comment