3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-12-18 09:12:43 +01:00

monitor: add better info about the country code IE

The 3rd byte of the country code was being printed as ASCII but this
byte isn't always a printable character. Instead we can check what
the value is and describe what it means from the spec.
This commit is contained in:
James Prestwood 2024-11-13 05:42:12 -08:00 committed by Denis Kenzior
parent ccd91fe556
commit b4a4495537

View File

@ -491,7 +491,30 @@ static void print_ie_country(unsigned int level, const char *label,
return;
}
print_attr(level, "%s: %c%c%c", label, code[0], code[1], code[2]);
print_attr(level, "%s: %c%c", label, code[0], code[1]);
switch (code[2]) {
case ' ':
print_attr(level + 1,
"3rd octet: 0x%02x: All environments", code[2]);
break;
case 'O':
print_attr(level + 1,
"3rd octet: 0x%02x: Outdoor environments", code[2]);
break;
case 'I':
print_attr(level + 1,
"3rd octet: 0x%02x: Indoor environments", code[2]);
break;
case 'X':
print_attr(level + 1,
"3rd octet: 0x%02x: Non-country entity", code[2]);
break;
default:
print_attr(level + 1,
"3rd octet: 0x%02x: Annex E table", code[2]);
break;
}
while (i < size) {
if (code[i] > 200) {