diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2011-12-04 03:42:17 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2011-12-04 03:42:17 +0000 |
commit | cf716c04e697f13d8fd6373a76a5ba57f540f64e (patch) | |
tree | a6a2ff8f2ef405ee8a79e1e5ba92689d9d485512 /package/iwinfo/src/iwinfo_cli.c | |
parent | 0f2f3e734d6a4460e2002a0a98136c92ebb8450f (diff) | |
download | upstream-cf716c04e697f13d8fd6373a76a5ba57f540f64e.tar.gz upstream-cf716c04e697f13d8fd6373a76a5ba57f540f64e.tar.bz2 upstream-cf716c04e697f13d8fd6373a76a5ba57f540f64e.zip |
[package] iwinfo: add initial hardware detection capabilities
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29421 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/iwinfo/src/iwinfo_cli.c')
-rw-r--r-- | package/iwinfo/src/iwinfo_cli.c | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/package/iwinfo/src/iwinfo_cli.c b/package/iwinfo/src/iwinfo_cli.c index 4229b19f56..bfa1d88ef9 100644 --- a/package/iwinfo/src/iwinfo_cli.c +++ b/package/iwinfo/src/iwinfo_cli.c @@ -282,6 +282,35 @@ static const char * print_type(const struct iwinfo_ops *iw, const char *ifname) return type ? type : "unknown"; } +static char * print_hardware_id(const struct iwinfo_ops *iw, const char *ifname) +{ + static char buf[20]; + struct iwinfo_hardware_id ids; + + if (!iw->hardware_id(ifname, (char *)&ids)) + { + snprintf(buf, sizeof(buf), "%04X:%04X %04X:%04X", + ids.vendor_id, ids.device_id, + ids.subsystem_vendor_id, ids.subsystem_device_id); + } + else + { + snprintf(buf, sizeof(buf), "unknown"); + } + + return buf; +} + +static char * print_hardware_name(const struct iwinfo_ops *iw, const char *ifname) +{ + static char buf[128]; + + if (iw->hardware_name(ifname, buf)) + snprintf(buf, sizeof(buf), "unknown"); + + return buf; +} + static char * print_ssid(const struct iwinfo_ops *iw, const char *ifname) { char buf[IWINFO_ESSID_MAX_SIZE+1] = { 0 }; @@ -423,9 +452,6 @@ static void print_info(const struct iwinfo_ops *iw, const char *ifname) print_ssid(iw, ifname)); printf(" Access Point: %s\n", print_bssid(iw, ifname)); - printf(" Type: %s HW Mode(s): %s\n", - print_type(iw, ifname), - print_hwmodes(iw, ifname)); printf(" Mode: %s Channel: %s (%s)\n", print_mode(iw, ifname), print_channel(iw, ifname), @@ -441,6 +467,12 @@ static void print_info(const struct iwinfo_ops *iw, const char *ifname) print_rate(iw, ifname)); printf(" Encryption: %s\n", print_encryption(iw, ifname)); + printf(" Type: %s HW Mode(s): %s\n", + print_type(iw, ifname), + print_hwmodes(iw, ifname)); + printf(" Hardware: %s [%s]\n", + print_hardware_id(iw, ifname), + print_hardware_name(iw, ifname)); printf(" Supports VAPs: %s\n", print_mbssid_supp(iw, ifname)); } |