cli: add command to translate uci section to phy name

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
This commit is contained in:
Jo-Philipp Wich 2014-10-27 16:59:50 +01:00
parent 665809c7f3
commit 149ce00582

View file

@ -744,10 +744,29 @@ static void print_countrylist(const struct iwinfo_ops *iw, const char *ifname)
} }
} }
static void lookup_phy(const struct iwinfo_ops *iw, const char *section)
{
char buf[IWINFO_BUFSIZE];
if (!iw->lookup_phy)
{
fprintf(stderr, "Not supported\n");
return;
}
if (iw->lookup_phy(section, buf))
{
fprintf(stderr, "Phy not found\n");
return;
}
printf("%s\n", buf);
}
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
int i; int i, rv = 0;
char *p; char *p;
const struct iwinfo_ops *iw; const struct iwinfo_ops *iw;
glob_t globbuf; glob_t globbuf;
@ -762,6 +781,7 @@ int main(int argc, char **argv)
" iwinfo <device> freqlist\n" " iwinfo <device> freqlist\n"
" iwinfo <device> assoclist\n" " iwinfo <device> assoclist\n"
" iwinfo <device> countrylist\n" " iwinfo <device> countrylist\n"
" iwinfo <backend> phyname <section>\n"
); );
return 1; return 1;
@ -791,49 +811,78 @@ int main(int argc, char **argv)
return 0; return 0;
} }
iw = iwinfo_backend(argv[1]); if (argc > 3)
if (!iw)
{ {
fprintf(stderr, "No such wireless device: %s\n", argv[1]); iw = iwinfo_backend_by_name(argv[1]);
return 1;
}
for (i = 2; i < argc; i++) if (!iw)
{
switch(argv[i][0])
{ {
case 'i': fprintf(stderr, "No such wireless backend: %s\n", argv[1]);
print_info(iw, argv[1]); rv = 1;
break; }
else
{
switch (argv[2][0])
{
case 'p':
lookup_phy(iw, argv[3]);
break;
case 's': default:
print_scanlist(iw, argv[1]); fprintf(stderr, "Unknown command: %s\n", argv[2]);
break; rv = 1;
}
}
}
else
{
iw = iwinfo_backend(argv[1]);
case 't': if (!iw)
print_txpwrlist(iw, argv[1]); {
break; fprintf(stderr, "No such wireless device: %s\n", argv[1]);
rv = 1;
}
else
{
for (i = 2; i < argc; i++)
{
switch(argv[i][0])
{
case 'i':
print_info(iw, argv[1]);
break;
case 'f': case 's':
print_freqlist(iw, argv[1]); print_scanlist(iw, argv[1]);
break; break;
case 'a': case 't':
print_assoclist(iw, argv[1]); print_txpwrlist(iw, argv[1]);
break; break;
case 'c': case 'f':
print_countrylist(iw, argv[1]); print_freqlist(iw, argv[1]);
break; break;
default: case 'a':
fprintf(stderr, "Unknown command: %s\n", argv[i]); print_assoclist(iw, argv[1]);
return 1; break;
case 'c':
print_countrylist(iw, argv[1]);
break;
default:
fprintf(stderr, "Unknown command: %s\n", argv[i]);
rv = 1;
}
}
} }
} }
out:
iwinfo_finish(); iwinfo_finish();
return 0; return rv;
} }