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,14 +811,40 @@ int main(int argc, char **argv)
return 0; return 0;
} }
if (argc > 3)
{
iw = iwinfo_backend_by_name(argv[1]);
if (!iw)
{
fprintf(stderr, "No such wireless backend: %s\n", argv[1]);
rv = 1;
}
else
{
switch (argv[2][0])
{
case 'p':
lookup_phy(iw, argv[3]);
break;
default:
fprintf(stderr, "Unknown command: %s\n", argv[2]);
rv = 1;
}
}
}
else
{
iw = iwinfo_backend(argv[1]); iw = iwinfo_backend(argv[1]);
if (!iw) if (!iw)
{ {
fprintf(stderr, "No such wireless device: %s\n", argv[1]); fprintf(stderr, "No such wireless device: %s\n", argv[1]);
return 1; rv = 1;
} }
else
{
for (i = 2; i < argc; i++) for (i = 2; i < argc; i++)
{ {
switch(argv[i][0]) switch(argv[i][0])
@ -829,11 +875,14 @@ int main(int argc, char **argv)
default: default:
fprintf(stderr, "Unknown command: %s\n", argv[i]); fprintf(stderr, "Unknown command: %s\n", argv[i]);
return 1; rv = 1;
}
}
} }
} }
out:
iwinfo_finish(); iwinfo_finish();
return 0; return rv;
} }