Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F102045863
D40427.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
25 KB
Referenced Files
None
Subscribers
None
D40427.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
@@ -71,7 +71,7 @@
static unsigned char const *carpr_key;
static void
-carp_status(if_ctx *ctx __unused)
+carp_status(if_ctx *ctx)
{
struct ifconfig_carp carpr[CARP_MAXVHID];
char addr_buf[NI_MAXHOST];
@@ -83,7 +83,7 @@
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);
- if (printkeys && carpr[i].carpr_key[0] != '\0')
+ if (ctx->args->printkeys && carpr[i].carpr_key[0] != '\0')
printf(" key \"%s\"\n", carpr[i].carpr_key);
else
printf("\n");
diff --git a/sbin/ifconfig/ifconfig.h b/sbin/ifconfig/ifconfig.h
--- a/sbin/ifconfig/ifconfig.h
+++ b/sbin/ifconfig/ifconfig.h
@@ -250,9 +250,7 @@
extern struct ifreq ifr;
extern char name[IFNAMSIZ]; /* name of interface */
extern int allmedia;
-extern int printkeys;
extern int newaddr;
-extern int verbose;
extern int printifname;
extern int exit_code;
extern struct ifconfig_args global_args;
diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c
--- a/sbin/ifconfig/ifconfig.c
+++ b/sbin/ifconfig/ifconfig.c
@@ -102,12 +102,10 @@
static int doalias;
static int clearaddr;
int newaddr = 1;
-int verbose;
int printifname = 0;
struct ifconfig_args global_args;
-int printkeys = 0; /* Print keying material for interfaces. */
int exit_code = 0;
/* Formatter Strings */
@@ -555,10 +553,6 @@
args->argc = argc;
args->argv = argv;
-
- /* Sync global variables */
- printkeys = args->printkeys;
- verbose = args->verbose;
}
static int
diff --git a/sbin/ifconfig/ifieee80211.c b/sbin/ifconfig/ifieee80211.c
--- a/sbin/ifconfig/ifieee80211.c
+++ b/sbin/ifconfig/ifieee80211.c
@@ -183,7 +183,7 @@
static void print_regdomain(const struct ieee80211_regdomain *, int);
static void print_channels(int, const struct ieee80211req_chaninfo *,
int allchans, int verbose);
-static void regdomain_makechannels(struct ieee80211_regdomain_req *,
+static void regdomain_makechannels(if_ctx *, struct ieee80211_regdomain_req *,
const struct ieee80211_devcaps_req *);
static const char *mesh_linkstate_string(uint8_t state);
@@ -563,8 +563,8 @@
if (req == NULL)
errx(1, "no space for regdomain request");
req->rd = *rd;
- regdomain_makechannels(req, dc);
- if (verbose) {
+ regdomain_makechannels(ctx, req, dc);
+ if (ctx->args->verbose) {
LINE_INIT(':');
print_regdomain(rd, 1/*verbose*/);
LINE_BREAK();
@@ -2165,7 +2165,7 @@
}
static void
-regdomain_addchans(struct ieee80211req_chaninfo *ci,
+regdomain_addchans(if_ctx *ctx, struct ieee80211req_chaninfo *ci,
const netband_head *bands,
const struct ieee80211_regdomain *reg,
uint32_t chanFlags,
@@ -2176,6 +2176,7 @@
struct ieee80211_channel *c, *prev;
int freq, hi_adj, lo_adj, channelSep;
uint32_t flags;
+ const int verbose = ctx->args->verbose;
hi_adj = (chanFlags & IEEE80211_CHAN_HT40U) ? -20 : 0;
lo_adj = (chanFlags & IEEE80211_CHAN_HT40D) ? 20 : 0;
@@ -2337,6 +2338,7 @@
static void
regdomain_makechannels(
+ if_ctx *ctx,
struct ieee80211_regdomain_req *req,
const struct ieee80211_devcaps_req *dc)
{
@@ -2375,40 +2377,40 @@
*/
ci->ic_nchans = 0;
if (!LIST_EMPTY(&rd->bands_11b))
- regdomain_addchans(ci, &rd->bands_11b, reg,
+ regdomain_addchans(ctx, ci, &rd->bands_11b, reg,
IEEE80211_CHAN_B, &dc->dc_chaninfo);
if (!LIST_EMPTY(&rd->bands_11g))
- regdomain_addchans(ci, &rd->bands_11g, reg,
+ regdomain_addchans(ctx, ci, &rd->bands_11g, reg,
IEEE80211_CHAN_G, &dc->dc_chaninfo);
if (!LIST_EMPTY(&rd->bands_11a))
- regdomain_addchans(ci, &rd->bands_11a, reg,
+ regdomain_addchans(ctx, ci, &rd->bands_11a, reg,
IEEE80211_CHAN_A, &dc->dc_chaninfo);
if (!LIST_EMPTY(&rd->bands_11na) && dc->dc_htcaps != 0) {
- regdomain_addchans(ci, &rd->bands_11na, reg,
+ regdomain_addchans(ctx, ci, &rd->bands_11na, reg,
IEEE80211_CHAN_A | IEEE80211_CHAN_HT20,
&dc->dc_chaninfo);
if (dc->dc_htcaps & IEEE80211_HTCAP_CHWIDTH40) {
- regdomain_addchans(ci, &rd->bands_11na, reg,
+ regdomain_addchans(ctx, ci, &rd->bands_11na, reg,
IEEE80211_CHAN_A | IEEE80211_CHAN_HT40U,
&dc->dc_chaninfo);
- regdomain_addchans(ci, &rd->bands_11na, reg,
+ regdomain_addchans(ctx, ci, &rd->bands_11na, reg,
IEEE80211_CHAN_A | IEEE80211_CHAN_HT40D,
&dc->dc_chaninfo);
}
}
if (!LIST_EMPTY(&rd->bands_11ac) && dc->dc_vhtcaps != 0) {
- regdomain_addchans(ci, &rd->bands_11ac, reg,
+ regdomain_addchans(ctx, ci, &rd->bands_11ac, reg,
IEEE80211_CHAN_A | IEEE80211_CHAN_HT20 |
IEEE80211_CHAN_VHT20,
&dc->dc_chaninfo);
/* VHT40 is a function of HT40.. */
if (dc->dc_htcaps & IEEE80211_HTCAP_CHWIDTH40) {
- regdomain_addchans(ci, &rd->bands_11ac, reg,
+ regdomain_addchans(ctx, ci, &rd->bands_11ac, reg,
IEEE80211_CHAN_A | IEEE80211_CHAN_HT40U |
IEEE80211_CHAN_VHT40U,
&dc->dc_chaninfo);
- regdomain_addchans(ci, &rd->bands_11ac, reg,
+ regdomain_addchans(ctx, ci, &rd->bands_11ac, reg,
IEEE80211_CHAN_A | IEEE80211_CHAN_HT40D |
IEEE80211_CHAN_VHT40D,
&dc->dc_chaninfo);
@@ -2416,11 +2418,11 @@
/* VHT80 is mandatory (and so should be VHT40 above). */
if (1) {
- regdomain_addchans(ci, &rd->bands_11ac, reg,
+ regdomain_addchans(ctx, ci, &rd->bands_11ac, reg,
IEEE80211_CHAN_A | IEEE80211_CHAN_HT40U |
IEEE80211_CHAN_VHT80,
&dc->dc_chaninfo);
- regdomain_addchans(ci, &rd->bands_11ac, reg,
+ regdomain_addchans(ctx, ci, &rd->bands_11ac, reg,
IEEE80211_CHAN_A | IEEE80211_CHAN_HT40D |
IEEE80211_CHAN_VHT80,
&dc->dc_chaninfo);
@@ -2429,11 +2431,11 @@
/* VHT160 */
if (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160MHZ(
dc->dc_vhtcaps)) {
- regdomain_addchans(ci, &rd->bands_11ac, reg,
+ regdomain_addchans(ctx, ci, &rd->bands_11ac, reg,
IEEE80211_CHAN_A | IEEE80211_CHAN_HT40U |
IEEE80211_CHAN_VHT160,
&dc->dc_chaninfo);
- regdomain_addchans(ci, &rd->bands_11ac, reg,
+ regdomain_addchans(ctx, ci, &rd->bands_11ac, reg,
IEEE80211_CHAN_A | IEEE80211_CHAN_HT40D |
IEEE80211_CHAN_VHT160,
&dc->dc_chaninfo);
@@ -2442,11 +2444,11 @@
/* VHT80P80 */
if (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160_80P80MHZ(
dc->dc_vhtcaps)) {
- regdomain_addchans(ci, &rd->bands_11ac, reg,
+ regdomain_addchans(ctx, ci, &rd->bands_11ac, reg,
IEEE80211_CHAN_A | IEEE80211_CHAN_HT40U |
IEEE80211_CHAN_VHT80P80,
&dc->dc_chaninfo);
- regdomain_addchans(ci, &rd->bands_11ac, reg,
+ regdomain_addchans(ctx, ci, &rd->bands_11ac, reg,
IEEE80211_CHAN_A | IEEE80211_CHAN_HT40D |
IEEE80211_CHAN_VHT80P80,
&dc->dc_chaninfo);
@@ -2454,14 +2456,14 @@
}
if (!LIST_EMPTY(&rd->bands_11ng) && dc->dc_htcaps != 0) {
- regdomain_addchans(ci, &rd->bands_11ng, reg,
+ regdomain_addchans(ctx, ci, &rd->bands_11ng, reg,
IEEE80211_CHAN_G | IEEE80211_CHAN_HT20,
&dc->dc_chaninfo);
if (dc->dc_htcaps & IEEE80211_HTCAP_CHWIDTH40) {
- regdomain_addchans(ci, &rd->bands_11ng, reg,
+ regdomain_addchans(ctx, ci, &rd->bands_11ng, reg,
IEEE80211_CHAN_G | IEEE80211_CHAN_HT40U,
&dc->dc_chaninfo);
- regdomain_addchans(ci, &rd->bands_11ng, reg,
+ regdomain_addchans(ctx, ci, &rd->bands_11ng, reg,
IEEE80211_CHAN_G | IEEE80211_CHAN_HT40D,
&dc->dc_chaninfo);
}
@@ -2720,10 +2722,10 @@
}
static void
-printie(const char* tag, const uint8_t *ie, size_t ielen, unsigned int maxlen)
+printie(if_ctx *ctx, const char* tag, const uint8_t *ie, size_t ielen, unsigned int maxlen)
{
printf("%s", tag);
- if (verbose) {
+ if (ctx->args->verbose) {
maxlen -= strlen(tag)+2;
if (2*ielen > maxlen)
maxlen--;
@@ -2757,7 +2759,7 @@
*/
static void
-printwmeparam(const char *tag, const u_int8_t *ie)
+printwmeparam(if_ctx *ctx, const char *tag, const u_int8_t *ie)
{
static const char *acnames[] = { "BE", "BK", "VO", "VI" };
const struct ieee80211_wme_param *wme =
@@ -2765,7 +2767,7 @@
int i;
printf("%s", tag);
- if (!verbose)
+ if (!ctx->args->verbose)
return;
printf("<qosinfo 0x%x", wme->param_qosInfo);
ie += offsetof(struct ieee80211_wme_param, params_acParams);
@@ -2787,10 +2789,10 @@
}
static void
-printwmeinfo(const char *tag, const u_int8_t *ie)
+printwmeinfo(if_ctx *ctx, const char *tag, const u_int8_t *ie)
{
printf("%s", tag);
- if (verbose) {
+ if (ctx->args->verbose) {
const struct ieee80211_wme_info *wme =
(const struct ieee80211_wme_info *) ie;
printf("<version 0x%x info 0x%x>",
@@ -2799,10 +2801,10 @@
}
static void
-printvhtcap(const char *tag, const u_int8_t *ie)
+printvhtcap(if_ctx *ctx, const char *tag, const u_int8_t *ie)
{
printf("%s", tag);
- if (verbose) {
+ if (ctx->args->verbose) {
const struct ieee80211_ie_vhtcap *vhtcap =
(const struct ieee80211_ie_vhtcap *) ie;
uint32_t vhtcap_info = LE_READ_4(&vhtcap->vht_cap_info);
@@ -2822,10 +2824,10 @@
}
static void
-printvhtinfo(const char *tag, const u_int8_t *ie)
+printvhtinfo(if_ctx *ctx, const char *tag, const u_int8_t *ie)
{
printf("%s", tag);
- if (verbose) {
+ if (ctx->args->verbose) {
const struct ieee80211_ie_vht_operation *vhtinfo =
(const struct ieee80211_ie_vht_operation *) ie;
@@ -2838,7 +2840,7 @@
}
static void
-printvhtpwrenv(const char *tag, const u_int8_t *ie, size_t ielen)
+printvhtpwrenv(if_ctx *ctx, const char *tag, const u_int8_t *ie, size_t ielen)
{
printf("%s", tag);
static const char *txpwrmap[] = {
@@ -2847,7 +2849,7 @@
"80",
"160",
};
- if (verbose) {
+ if (ctx->args->verbose) {
const struct ieee80211_ie_vht_txpwrenv *vhtpwr =
(const struct ieee80211_ie_vht_txpwrenv *) ie;
size_t i, n;
@@ -2871,10 +2873,10 @@
}
static void
-printhtcap(const char *tag, const u_int8_t *ie)
+printhtcap(if_ctx *ctx, const char *tag, const u_int8_t *ie)
{
printf("%s", tag);
- if (verbose) {
+ if (ctx->args->verbose) {
const struct ieee80211_ie_htcap *htcap =
(const struct ieee80211_ie_htcap *) ie;
const char *sep;
@@ -2905,10 +2907,10 @@
}
static void
-printhtinfo(const char *tag, const u_int8_t *ie)
+printhtinfo(if_ctx *ctx, const char *tag, const u_int8_t *ie)
{
printf("%s", tag);
- if (verbose) {
+ if (ctx->args->verbose) {
const struct ieee80211_ie_htinfo *htinfo =
(const struct ieee80211_ie_htinfo *) ie;
const char *sep;
@@ -2937,11 +2939,11 @@
}
static void
-printathie(const char *tag, const u_int8_t *ie)
+printathie(if_ctx *ctx, const char *tag, const u_int8_t *ie)
{
printf("%s", tag);
- if (verbose) {
+ if (ctx->args->verbose) {
const struct ieee80211_ath_ie *ath =
(const struct ieee80211_ath_ie *)ie;
@@ -2968,11 +2970,11 @@
static void
-printmeshconf(const char *tag, const uint8_t *ie)
+printmeshconf(if_ctx *ctx, const char *tag, const uint8_t *ie)
{
printf("%s", tag);
- if (verbose) {
+ if (ctx->args->verbose) {
const struct ieee80211_meshconf_ie *mconf =
(const struct ieee80211_meshconf_ie *)ie;
printf("<PATH:");
@@ -3006,10 +3008,10 @@
}
static void
-printbssload(const char *tag, const uint8_t *ie)
+printbssload(if_ctx *ctx, const char *tag, const uint8_t *ie)
{
printf("%s", tag);
- if (verbose) {
+ if (ctx->args->verbose) {
const struct ieee80211_bss_load_ie *bssload =
(const struct ieee80211_bss_load_ie *) ie;
printf("<sta count %d, chan load %d, aac %d>",
@@ -3020,10 +3022,10 @@
}
static void
-printapchanrep(const char *tag, const u_int8_t *ie, size_t ielen)
+printapchanrep(if_ctx *ctx, const char *tag, const u_int8_t *ie, size_t ielen)
{
printf("%s", tag);
- if (verbose) {
+ if (ctx->args->verbose) {
const struct ieee80211_ap_chan_report_ie *ap =
(const struct ieee80211_ap_chan_report_ie *) ie;
const char *sep = "";
@@ -3079,12 +3081,12 @@
}
static void
-printwpaie(const char *tag, const u_int8_t *ie)
+printwpaie(if_ctx *ctx, const char *tag, const u_int8_t *ie)
{
u_int8_t len = ie[1];
printf("%s", tag);
- if (verbose) {
+ if (ctx->args->verbose) {
const char *sep;
int n;
@@ -3165,10 +3167,10 @@
}
static void
-printrsnie(const char *tag, const u_int8_t *ie, size_t ielen)
+printrsnie(if_ctx *ctx, const char *tag, const u_int8_t *ie, size_t ielen)
{
printf("%s", tag);
- if (verbose) {
+ if (ctx->args->verbose) {
const char *sep;
int n;
@@ -3213,12 +3215,12 @@
(((const u_int8_t *)(p))[0] << 8)))
static void
-printwpsie(const char *tag, const u_int8_t *ie)
+printwpsie(if_ctx *ctx, const char *tag, const u_int8_t *ie)
{
u_int8_t len = ie[1];
printf("%s", tag);
- if (verbose) {
+ if (ctx->args->verbose) {
static const char *dev_pass_id[] = {
"D", /* Default (PIN) */
"U", /* User-specified */
@@ -3443,10 +3445,10 @@
}
static void
-printtdmaie(const char *tag, const u_int8_t *ie, size_t ielen)
+printtdmaie(if_ctx *ctx, const char *tag, const u_int8_t *ie, size_t ielen)
{
printf("%s", tag);
- if (verbose && ielen >= sizeof(struct ieee80211_tdma_param)) {
+ if (ctx->args->verbose && ielen >= sizeof(struct ieee80211_tdma_param)) {
const struct ieee80211_tdma_param *tdma =
(const struct ieee80211_tdma_param *) ie;
@@ -3622,8 +3624,10 @@
}
static void
-printies(const u_int8_t *vp, int ielen, unsigned int maxcols)
+printies(if_ctx *ctx, const u_int8_t *vp, int ielen, unsigned int maxcols)
{
+ const int verbose = ctx->args->verbose;
+
while (ielen > 0) {
switch (vp[0]) {
case IEEE80211_ELEMID_SSID:
@@ -3650,55 +3654,55 @@
break;
case IEEE80211_ELEMID_VENDOR:
if (iswpaoui(vp))
- printwpaie(" WPA", vp);
+ printwpaie(ctx, " WPA", vp);
else if (iswmeinfo(vp))
- printwmeinfo(" WME", vp);
+ printwmeinfo(ctx, " WME", vp);
else if (iswmeparam(vp))
- printwmeparam(" WME", vp);
+ printwmeparam(ctx, " WME", vp);
else if (isatherosoui(vp))
- printathie(" ATH", vp);
+ printathie(ctx, " ATH", vp);
else if (iswpsoui(vp))
- printwpsie(" WPS", vp);
+ printwpsie(ctx, " WPS", vp);
else if (istdmaoui(vp))
- printtdmaie(" TDMA", vp, 2+vp[1]);
+ printtdmaie(ctx, " TDMA", vp, 2+vp[1]);
else if (verbose)
- printie(" VEN", vp, 2+vp[1], maxcols);
- break;
+ printie(ctx, " VEN", vp, 2+vp[1], maxcols);
+ break;
case IEEE80211_ELEMID_RSN:
- printrsnie(" RSN", vp, 2+vp[1]);
+ printrsnie(ctx, " RSN", vp, 2+vp[1]);
break;
case IEEE80211_ELEMID_HTCAP:
- printhtcap(" HTCAP", vp);
+ printhtcap(ctx, " HTCAP", vp);
break;
case IEEE80211_ELEMID_HTINFO:
if (verbose)
- printhtinfo(" HTINFO", vp);
+ printhtinfo(ctx, " HTINFO", vp);
break;
case IEEE80211_ELEMID_MESHID:
if (verbose)
printssid(" MESHID", vp, maxcols);
break;
case IEEE80211_ELEMID_MESHCONF:
- printmeshconf(" MESHCONF", vp);
+ printmeshconf(ctx, " MESHCONF", vp);
break;
case IEEE80211_ELEMID_VHT_CAP:
- printvhtcap(" VHTCAP", vp);
+ printvhtcap(ctx, " VHTCAP", vp);
break;
case IEEE80211_ELEMID_VHT_OPMODE:
- printvhtinfo(" VHTOPMODE", vp);
+ printvhtinfo(ctx, " VHTOPMODE", vp);
break;
case IEEE80211_ELEMID_VHT_PWR_ENV:
- printvhtpwrenv(" VHTPWRENV", vp, 2+vp[1]);
+ printvhtpwrenv(ctx, " VHTPWRENV", vp, 2+vp[1]);
break;
case IEEE80211_ELEMID_BSSLOAD:
- printbssload(" BSSLOAD", vp);
+ printbssload(ctx, " BSSLOAD", vp);
break;
case IEEE80211_ELEMID_APCHANREP:
- printapchanrep(" APCHANREP", vp, 2+vp[1]);
+ printapchanrep(ctx, " APCHANREP", vp, 2+vp[1]);
break;
default:
if (verbose)
- printie(iename(vp[0]), vp, 2+vp[1], maxcols);
+ printie(ctx, iename(vp[0]), vp, 2+vp[1], maxcols);
break;
}
ielen -= 2+vp[1];
@@ -3747,19 +3751,19 @@
}
static void
-list_scan(int s)
+list_scan(if_ctx *ctx)
{
uint8_t buf[24*1024];
char ssid[IEEE80211_NWID_LEN+1];
const uint8_t *cp;
int len, idlen;
- if (get80211len(s, IEEE80211_IOC_SCAN_RESULTS, buf, sizeof(buf), &len) < 0)
+ if (get80211len(ctx->io_s, IEEE80211_IOC_SCAN_RESULTS, buf, sizeof(buf), &len) < 0)
errx(1, "unable to get scan results");
if (len < (int)sizeof(struct ieee80211req_scan_result))
return;
- getchaninfo(s);
+ getchaninfo(ctx->io_s);
printf("%-*.*s %-17.17s %4s %4s %-7s %3s %4s\n"
, IEEE80211_NWID_LEN, IEEE80211_NWID_LEN, "SSID/MESH ID"
@@ -3795,7 +3799,7 @@
, sr->isr_intval
, getcaps(sr->isr_capinfo)
);
- printies(vp + sr->isr_ssid_len + sr->isr_meshid_len,
+ printies(ctx, vp + sr->isr_ssid_len + sr->isr_meshid_len,
sr->isr_ie_len, 24);
printbssidname((const struct ether_addr *)sr->isr_bssid);
printf("\n");
@@ -3858,7 +3862,7 @@
set80211scan(if_ctx *ctx, const char *val __unused, int dummy __unused)
{
scan_and_wait(ctx->io_s);
- list_scan(ctx->io_s);
+ list_scan(ctx);
}
static enum ieee80211_opmode get80211opmode(int s);
@@ -3894,12 +3898,13 @@
}
static void
-list_stations(int s)
+list_stations(if_ctx *ctx)
{
union {
struct ieee80211req_sta_req req;
uint8_t buf[24*1024];
} u;
+ int s = ctx->io_s;
enum ieee80211_opmode opmode = get80211opmode(s);
const uint8_t *cp;
int len;
@@ -3983,7 +3988,7 @@
, getcaps(si->isi_capinfo)
, getflags(si->isi_state)
);
- printies(cp + si->isi_ie_off, si->isi_ie_len, 24);
+ printies(ctx, cp + si->isi_ie_off, si->isi_ie_len, 24);
printmimo(&si->isi_mimo);
printf("\n");
cp += si->isi_len, len -= si->isi_len;
@@ -4190,10 +4195,10 @@
}
static void
-list_channels(int s, int allchans)
+list_channels(if_ctx *ctx, int allchans)
{
- getchaninfo(s);
- print_channels(s, chaninfo, allchans, verbose);
+ getchaninfo(ctx->io_s);
+ print_channels(ctx->io_s, chaninfo, allchans, ctx->args->verbose);
}
static void
@@ -4216,14 +4221,14 @@
}
static void
-list_txpow(int s)
+list_txpow(if_ctx *ctx)
{
struct ieee80211req_chaninfo *achans;
uint8_t reported[IEEE80211_CHAN_BYTES];
struct ieee80211_channel *c, *prev;
unsigned int i, half;
- getchaninfo(s);
+ getchaninfo(ctx->io_s);
achans = malloc(IEEE80211_CHANINFO_SPACE(chaninfo));
if (achans == NULL)
errx(1, "no space for active channel list");
@@ -4232,7 +4237,7 @@
for (i = 0; i < chaninfo->ic_nchans; i++) {
c = &chaninfo->ic_chans[i];
/* suppress duplicates as above */
- if (isset(reported, c->ic_ieee) && !verbose) {
+ if (isset(reported, c->ic_ieee) && !ctx->args->verbose) {
/* XXX we assume duplicates are adjacent */
assert(achans->ic_nchans > 0);
prev = &achans->ic_chans[achans->ic_nchans-1];
@@ -4244,7 +4249,7 @@
setbit(reported, c->ic_ieee);
}
}
- if (!verbose) {
+ if (!ctx->args->verbose) {
half = achans->ic_nchans / 2;
if (achans->ic_nchans % 2)
half++;
@@ -4273,9 +4278,11 @@
}
static void
-list_capabilities(int s)
+list_capabilities(if_ctx *ctx)
{
struct ieee80211_devcaps_req *dc;
+ const int verbose = ctx->args->verbose;
+ int s = ctx->io_s;
if (verbose)
dc = malloc(IEEE80211_DEVCAPS_SIZE(MAXCHAN));
@@ -4327,9 +4334,10 @@
}
static void
-list_wme_aci(int s, const char *tag, int ac)
+list_wme_aci(if_ctx *ctx, const char *tag, int ac)
{
int val;
+ int s = ctx->io_s;
printf("\t%s", tag);
@@ -4345,7 +4353,7 @@
if (get80211wme(s, IEEE80211_IOC_WME_ACM, ac, &val) != -1) {
if (val)
printf(" acm");
- else if (verbose)
+ else if (ctx->args->verbose)
printf(" -acm");
}
/* !BSS only */
@@ -4353,7 +4361,7 @@
if (get80211wme(s, IEEE80211_IOC_WME_ACKPOLICY, ac, &val) != -1) {
if (!val)
printf(" -ack");
- else if (verbose)
+ else if (ctx->args->verbose)
printf(" ack");
}
}
@@ -4361,19 +4369,19 @@
}
static void
-list_wme(int s)
+list_wme(if_ctx *ctx)
{
static const char *acnames[] = { "AC_BE", "AC_BK", "AC_VI", "AC_VO" };
int ac;
- if (verbose) {
+ if (ctx->args->verbose) {
/* display both BSS and local settings */
for (ac = WME_AC_BE; ac <= WME_AC_VO; ac++) {
again:
if (ac & IEEE80211_WMEPARAM_BSS)
- list_wme_aci(s, " ", ac);
+ list_wme_aci(ctx, " ", ac);
else
- list_wme_aci(s, acnames[ac], ac);
+ list_wme_aci(ctx, acnames[ac], ac);
if ((ac & IEEE80211_WMEPARAM_BSS) == 0) {
ac |= IEEE80211_WMEPARAM_BSS;
goto again;
@@ -4383,7 +4391,7 @@
} else {
/* display only channel settings */
for (ac = WME_AC_BE; ac <= WME_AC_VO; ac++)
- list_wme_aci(s, acnames[ac], ac);
+ list_wme_aci(ctx, acnames[ac], ac);
}
}
@@ -4510,7 +4518,7 @@
}
static void
-list_mac(int s)
+list_mac(if_ctx *ctx)
{
struct ieee80211req ireq;
struct ieee80211req_maclist *acllist;
@@ -4522,7 +4530,7 @@
(void) strlcpy(ireq.i_name, name, sizeof(ireq.i_name)); /* XXX ?? */
ireq.i_type = IEEE80211_IOC_MACCMD;
ireq.i_val = IEEE80211_MACCMD_POLICY;
- if (ioctl(s, SIOCG80211, &ireq) < 0) {
+ if (ioctl_ctx(ctx, SIOCG80211, &ireq) < 0) {
if (errno == EINVAL) {
printf("No acl policy loaded\n");
return;
@@ -4542,15 +4550,15 @@
printf("policy: unknown (%u)\n", policy);
c = '?';
}
- if (verbose || c == '?')
+ if (ctx->args->verbose || c == '?')
printpolicy(policy);
ireq.i_val = IEEE80211_MACCMD_LIST;
ireq.i_len = 0;
- if (ioctl(s, SIOCG80211, &ireq) < 0)
+ if (ioctl_ctx(ctx, SIOCG80211, &ireq) < 0)
err(1, "unable to get mac acl list size");
if (ireq.i_len == 0) { /* NB: no acls */
- if (!(verbose || c == '?'))
+ if (!(ctx->args->verbose || c == '?'))
printpolicy(policy);
return;
}
@@ -4561,7 +4569,7 @@
err(1, "out of memory for acl list");
ireq.i_data = data;
- if (ioctl(s, SIOCG80211, &ireq) < 0)
+ if (ioctl_ctx(ctx, SIOCG80211, &ireq) < 0)
err(1, "unable to get mac acl list");
nacls = len / sizeof(*acllist);
acllist = (struct ieee80211req_maclist *) data;
@@ -4604,8 +4612,10 @@
}
static void
-list_regdomain(int s, int channelsalso)
+list_regdomain(if_ctx *ctx, int channelsalso)
{
+ int s = ctx->io_s;
+
getregdomain(s);
if (channelsalso) {
getchaninfo(s);
@@ -4614,7 +4624,7 @@
LINE_BREAK();
print_channels(s, chaninfo, 1/*allchans*/, 1/*verbose*/);
} else
- print_regdomain(®domain, verbose);
+ print_regdomain(®domain, ctx->args->verbose);
}
static void
@@ -4670,29 +4680,29 @@
LINE_INIT('\t');
if (iseq(arg, "sta"))
- list_stations(s);
+ list_stations(ctx);
else if (iseq(arg, "scan") || iseq(arg, "ap"))
- list_scan(s);
+ list_scan(ctx);
else if (iseq(arg, "chan") || iseq(arg, "freq"))
- list_channels(s, 1);
+ list_channels(ctx, 1);
else if (iseq(arg, "active"))
- list_channels(s, 0);
+ list_channels(ctx, 0);
else if (iseq(arg, "keys"))
list_keys(s);
else if (iseq(arg, "caps"))
- list_capabilities(s);
+ list_capabilities(ctx);
else if (iseq(arg, "wme") || iseq(arg, "wmm"))
- list_wme(s);
+ list_wme(ctx);
else if (iseq(arg, "mac"))
- list_mac(s);
+ list_mac(ctx);
else if (iseq(arg, "txpow"))
- list_txpow(s);
+ list_txpow(ctx);
else if (iseq(arg, "roam"))
list_roam(s);
else if (iseq(arg, "txparam") || iseq(arg, "txparm"))
list_txparams(s);
else if (iseq(arg, "regdomain"))
- list_regdomain(s, 1);
+ list_regdomain(ctx, 1);
else if (iseq(arg, "countries"))
list_countries();
else if (iseq(arg, "mesh"))
@@ -4767,11 +4777,13 @@
#endif
static void
-printkey(const struct ieee80211req_key *ik)
+printkey(if_ctx *ctx, const struct ieee80211req_key *ik)
{
static const uint8_t zerodata[IEEE80211_KEYBUF_SIZE];
u_int keylen = ik->ik_keylen;
int printcontents;
+ const int verbose = ctx->args->verbose;
+ const bool printkeys = ctx->args->printkeys;
printcontents = printkeys &&
(memcmp(ik->ik_keydata, zerodata, keylen) != 0 || verbose);
@@ -4894,6 +4906,7 @@
const struct ieee80211_channel *c;
const struct ieee80211_roamparam *rp;
const struct ieee80211_txparam *tp;
+ const int verbose = ctx->args->verbose;
if (getid(s, -1, data, sizeof(data), &len, 0) < 0) {
/* If we can't get the SSID, this isn't an 802.11 device. */
@@ -4951,7 +4964,7 @@
spacer = ' '; /* force first break */
LINE_BREAK();
- list_regdomain(s, 0);
+ list_regdomain(ctx, 0);
wpa = 0;
if (get80211val(s, IEEE80211_IOC_AUTHMODE, &val) != -1) {
@@ -5093,7 +5106,7 @@
if (ik.ik_keylen != 0) {
if (verbose)
LINE_BREAK();
- printkey(&ik);
+ printkey(ctx, &ik);
}
}
if (i > 0 && verbose)
@@ -5552,7 +5565,7 @@
if (wme && verbose) {
LINE_BREAK();
- list_wme(s);
+ list_wme(ctx);
}
if (opmode == IEEE80211_M_MBSS) {
diff --git a/sbin/ifconfig/iflagg.c b/sbin/ifconfig/iflagg.c
--- a/sbin/ifconfig/iflagg.c
+++ b/sbin/ifconfig/iflagg.c
@@ -215,7 +215,7 @@
}
static void
-lagg_status(if_ctx *ctx __unused)
+lagg_status(if_ctx *ctx)
{
struct lagg_protos protos[] = LAGG_PROTOS;
struct ifconfig_lagg_status *lagg;
@@ -225,6 +225,7 @@
struct lagg_reqport *ports;
struct lacp_opreq *lp;
const char *proto;
+ const int verbose = ctx->args->verbose;
if (ifconfig_lagg_get_lagg_status(lifh, name, &lagg) == -1)
return;
diff --git a/sbin/ifconfig/ifvxlan.c b/sbin/ifconfig/ifvxlan.c
--- a/sbin/ifconfig/ifvxlan.c
+++ b/sbin/ifconfig/ifvxlan.c
@@ -141,7 +141,7 @@
printf(" %s %s%s%s:%s", mc ? "group" : "remote", ipv6 ? "[" : "",
dst, ipv6 ? "]" : "", dstport);
- if (verbose) {
+ if (ctx->args->verbose) {
printf("\n\t\tconfig: ");
printf("%slearning portrange %d-%d ttl %d",
cfg.vxlc_learn ? "" : "no", cfg.vxlc_port_min,
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Nov 7, 10:39 PM (21 h, 53 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14522246
Default Alt Text
D40427.diff (25 KB)
Attached To
Mode
D40427: ifconfig: eliminate global 'verbose' variable
Attached
Detach File
Event Timeline
Log In to Comment