From 2c3e165ed049e4b0650e701b71226c884d3d782c Mon Sep 17 00:00:00 2001 From: marius Date: Wed, 5 Jan 2011 15:28:30 +0000 Subject: [PATCH] Teach ifconfig(8) the handy shared option shortcut aliases the NetBSD counterpart also takes, i.e. "fdx" for "full-duplex", "flow" for "flowcontrol", "hdx" for "half-duplex" as well as "loop" and "loopback" for "hw-loopback". MFC after: 1 week --- sbin/ifconfig/ifmedia.c | 10 +++++++++- sys/net/if_media.h | 9 +++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/sbin/ifconfig/ifmedia.c b/sbin/ifconfig/ifmedia.c index b15c4f938ab6..0fd2f2b3dee2 100644 --- a/sbin/ifconfig/ifmedia.c +++ b/sbin/ifconfig/ifmedia.c @@ -421,6 +421,9 @@ static struct ifmedia_description ifm_subtype_shared_aliases[] = static struct ifmedia_description ifm_shared_option_descriptions[] = IFM_SHARED_OPTION_DESCRIPTIONS; +static struct ifmedia_description ifm_shared_option_aliases[] = + IFM_SHARED_OPTION_ALIASES; + struct ifmedia_type_to_subtype { struct { struct ifmedia_description *desc; @@ -429,7 +432,7 @@ struct ifmedia_type_to_subtype { struct { struct ifmedia_description *desc; int alias; - } options[3]; + } options[4]; struct { struct ifmedia_description *desc; int alias; @@ -448,6 +451,7 @@ static struct ifmedia_type_to_subtype ifmedia_types_to_subtypes[] = { }, { { &ifm_shared_option_descriptions[0], 0 }, + { &ifm_shared_option_aliases[0], 1 }, { &ifm_subtype_ethernet_option_descriptions[0], 0 }, { NULL, 0 }, }, @@ -465,6 +469,7 @@ static struct ifmedia_type_to_subtype ifmedia_types_to_subtypes[] = { }, { { &ifm_shared_option_descriptions[0], 0 }, + { &ifm_shared_option_aliases[0], 1 }, { &ifm_subtype_tokenring_option_descriptions[0], 0 }, { NULL, 0 }, }, @@ -482,6 +487,7 @@ static struct ifmedia_type_to_subtype ifmedia_types_to_subtypes[] = { }, { { &ifm_shared_option_descriptions[0], 0 }, + { &ifm_shared_option_aliases[0], 1 }, { &ifm_subtype_fddi_option_descriptions[0], 0 }, { NULL, 0 }, }, @@ -499,6 +505,7 @@ static struct ifmedia_type_to_subtype ifmedia_types_to_subtypes[] = { }, { { &ifm_shared_option_descriptions[0], 0 }, + { &ifm_shared_option_aliases[0], 1 }, { &ifm_subtype_ieee80211_option_descriptions[0], 0 }, { NULL, 0 }, }, @@ -518,6 +525,7 @@ static struct ifmedia_type_to_subtype ifmedia_types_to_subtypes[] = { }, { { &ifm_shared_option_descriptions[0], 0 }, + { &ifm_shared_option_aliases[0], 1 }, { &ifm_subtype_atm_option_descriptions[0], 0 }, { NULL, 0 }, }, diff --git a/sys/net/if_media.h b/sys/net/if_media.h index c7fd0ec159c4..1eb26ea3efae 100644 --- a/sys/net/if_media.h +++ b/sys/net/if_media.h @@ -598,6 +598,15 @@ struct ifmedia_description { { 0, NULL }, \ } +#define IFM_SHARED_OPTION_ALIASES { \ + { IFM_FDX, "fdx" }, \ + { IFM_HDX, "hdx" }, \ + { IFM_FLOW, "flow" }, \ + { IFM_LOOP, "loop" }, \ + { IFM_LOOP, "loopback" }, \ + { 0, NULL }, \ +} + /* * Baudrate descriptions for the various media types. */