Revision 4066776d
Added by Scott Ullrich about 19 years ago
etc/inc/interfaces.inc | ||
---|---|---|
1520 | 1520 |
function get_wireless_modes($interface) |
1521 | 1521 |
{ |
1522 | 1522 |
/* return wireless modes and channels */ |
1523 |
$wireless_modes = array(); |
|
1524 | 1523 |
if(is_interface_wireless($interface)) { |
1525 | 1524 |
$wi = 1; |
1526 | 1525 |
$ifconfig = "/sbin/ifconfig"; |
1527 | 1526 |
$awk = "/usr/bin/awk"; |
1528 | 1527 |
$chan_list = "$ifconfig $interface list chan"; |
1529 |
$stack_list = "$awk -F\"Channel \" '{print \$2 \"\\\n\" \$3 }'"; |
|
1528 |
$stack_list = "$awk -F\"Channel \" '{ gsub(/\\*/, \" \"); print \$2 \"\\\n\" \$3 }'";
|
|
1530 | 1529 |
$format_list = "$awk '{print \$5 \" \" \$6 \",\" \$1}'"; |
1531 | 1530 |
|
1532 | 1531 |
$interface_channels = ""; |
... | ... | |
1539 | 1538 |
$channel_line = explode(",", $interface_channels["$c"]); |
1540 | 1539 |
$wireless_mode = trim($channel_line[0]); |
1541 | 1540 |
$wireless_channel = trim($channel_line[1]); |
1542 |
if(trim($wireless_mode) != "") {
|
|
1543 |
/* if we only have 11g also set 11b channels */
|
|
1544 |
if($wireless_mode == "11g") {
|
|
1545 |
//$wireless_modes["11b"] = true;
|
|
1546 |
}
|
|
1547 |
$wireless_modes[$wireless_mode][$c] = $wireless_channel;
|
|
1548 |
}
|
|
1541 |
if(trim($wireless_mode) != "") {
|
|
1542 |
/* if we only have 11g also set 11b channels */
|
|
1543 |
if($wireless_mode == "11g") {
|
|
1544 |
$wireless_modes["11b"] = array();
|
|
1545 |
}
|
|
1546 |
$wireless_modes["$wireless_mode"]["$c"] = $wireless_channel;
|
|
1547 |
}
|
|
1549 | 1548 |
$c++; |
1550 | 1549 |
} |
1551 |
return($wireless_modes); |
|
1552 | 1550 |
} |
1551 |
return($wireless_modes); |
|
1553 | 1552 |
} |
1554 | 1553 |
|
1555 | 1554 |
?> |
Also available in: Unified diff
MFC 12314
MFC 12315
Present the 11b mode as a empty array instead of TRUE. This fixes a channel list with mixed 11b and 11g modes.