Date: Sun, 27 May 2001 23:12:56 -0700 (PDT) From: brooks@one-eyed-alien.net To: FreeBSD-gnats-submit@freebsd.org Subject: bin/27701: [PATCH] ifconfig: supported media looks bad : wastes space Message-ID: <20010528061256.8678524D23@minya.sea.one-eyed-alien.net>
next in thread | raw e-mail | index | archive | help
>Number: 27701
>Category: bin
>Synopsis: [PATCH] ifconfig: supported media looks bad & wastes space
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Sun May 27 23:20:01 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: Brooks Davis
>Release: FreeBSD 5.0-CURRENT i386
>Organization:
>Environment:
System: FreeBSD minya.sea.one-eyed-alien.net 5.0-CURRENT FreeBSD 5.0-CURRENT #4: Thu May 24 23:05:23 PDT 2001 root@minya.sea.one-eyed-alien.net:/usr/src/sys/compile/MINYA i386
>Description:
When using interfaces that support if_media, the supported media list is
printed on a single, very long, and generally unreadable line. This
isn't very useful. It's also really ugly and most of the time you don't
care what media is supported anyway.
>How-To-Repeat:
Type the following on any system with an interface that uses if_media:
$ ifconfig
>Fix:
This patch makes the printing of supported media dependent on the -m
flag and prints the options one per line. The concept was obtained from
NetBSD (actually, I first saw it on an OpenBSD box, but if_media is a
NetBSD thing and I used their manpages as a refrence.)
Index: ifconfig.8
===================================================================
RCS file: /home/ncvs/src/sbin/ifconfig/ifconfig.8,v
retrieving revision 1.38
diff -u -r1.38 ifconfig.8
--- ifconfig.8 2001/05/26 09:26:01 1.38
+++ ifconfig.8 2001/05/28 06:00:18
@@ -41,6 +41,7 @@
.Sh SYNOPSIS
.Nm
.Op Fl L
+.Op Fl m
.Ar interface
.Op Ar address_family
.Oo
@@ -52,6 +53,7 @@
.Fl a
.Op Fl L
.Op Fl d
+.Op Fl m
.Op Fl u
.Op Ar address_family
.Nm
@@ -62,6 +64,7 @@
.Nm
.Op Fl L
.Op Fl d
+.Op Fl m
.Op Fl u
.Sh DESCRIPTION
.Nm Ifconfig
@@ -530,6 +533,10 @@
If the driver does supports the media selection system, the supported
media list will be included in the output.
.Pp
+If the
+.Fl m
+flag is passed before an interface name, ifconfig will display all
+of the supported media for the specified interface.
If
.Fl L
flag is supplied, address lifetime is displayed for IPv6 addresses,
Index: ifconfig.c
===================================================================
RCS file: /home/ncvs/src/sbin/ifconfig/ifconfig.c,v
retrieving revision 1.61
diff -u -r1.61 ifconfig.c
--- ifconfig.c 2001/05/26 09:26:01 1.61
+++ ifconfig.c 2001/05/28 05:45:19
@@ -134,6 +134,8 @@
struct afswtch;
+int supmedia = 0;
+
#ifdef INET6
char addr_buf[MAXHOSTNAMELEN *2 + 1]; /*for getnameinfo()*/
#endif
@@ -351,16 +353,16 @@
fprintf(stderr, "%s\n%s\n%s\n%s\n%s\n",
"usage: ifconfig interface address_family [address [dest_address]]",
" [parameters]",
- " ifconfig -a [-d] [-u] [address_family]",
+ " ifconfig -a [-d] [-m] [-u] [address_family]",
" ifconfig -l [-d] [-u] [address_family]",
- " ifconfig [-d] [-u]");
+ " ifconfig [-d] [-m] [-u]");
#else
fprintf(stderr, "%s\n%s\n%s\n%s\n%s\n",
"usage: ifconfig [-L] interface address_family [address [dest_address]]",
" [parameters]",
- " ifconfig -a [-L] [-d] [-u] [address_family]",
+ " ifconfig -a [-L] [-d] [-m] [-u] [address_family]",
" ifconfig -l [-d] [-u] [address_family]",
- " ifconfig [-L] [-d] [-u]");
+ " ifconfig [-L] [-d] [-m] [-u]");
#endif
exit(1);
}
@@ -410,7 +412,7 @@
uponly++;
break;
case 'm': /* show media choices in status */
- /* ignored for compatibility */
+ supmedia = 1;
break;
default:
usage();
@@ -421,7 +423,7 @@
argv += optind;
/* -l cannot be used with -a or -m */
- if (namesonly && all)
+ if (namesonly && (all || supmedia))
usage();
/* nonsense.. */
Index: ifconfig.h
===================================================================
RCS file: /home/ncvs/src/sbin/ifconfig/ifconfig.h,v
retrieving revision 1.6
diff -u -r1.6 ifconfig.h
--- ifconfig.h 2001/05/26 09:26:01 1.6
+++ ifconfig.h 2001/05/28 05:39:35
@@ -38,6 +38,7 @@
extern char name[32]; /* name of interface */
extern int allmedia;
+extern int supmedia;
struct afswtch;
extern void setmedia(const char *, int, int, const struct afswtch *rafp);
Index: ifmedia.c
===================================================================
RCS file: /home/ncvs/src/sbin/ifconfig/ifmedia.c,v
retrieving revision 1.7
diff -u -r1.7 ifmedia.c
--- ifmedia.c 2001/05/26 09:26:01 1.7
+++ ifmedia.c 2001/05/28 05:42:09
@@ -164,13 +164,13 @@
putchar('\n');
- if (ifmr.ifm_count > 0) {
- printf("\tsupported media:");
+ if (ifmr.ifm_count > 0 && supmedia) {
+ printf("\tsupported media:\n");
for (i = 0; i < ifmr.ifm_count; i++) {
- putchar(' ');
+ printf("\t\t");
print_media_word(media_list[i]);
+ putchar('\n');
}
- putchar('\n');
}
free(media_list);
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010528061256.8678524D23>
