On some devices, the rx/tx bitrate may not always be available
right away, or at all when in mesh mode at plink is blocked causing
the following:
```
Reference error: left-hand side expression is null
In assoclist(), file /usr/share/ucode/iwinfo.uc, line 321, byte 46:
called from function info (/usr/share/ucode/iwinfo.uc:427:33)
called from anonymous function (/usr/bin/iwinfo:108:25)
` bitrate_raw: station.sta_info.tx_bitrate.bitrate,`
Near here -----------------------------------------------^
Reference error: left-hand side expression is null
In assoclist(), file /usr/share/ucode/iwinfo.uc, line 314, byte 54:
called from function info (/usr/share/ucode/iwinfo.uc:427:33)
called from anonymous function (/usr/bin/iwinfo:108:25)
` bitrate: format_rate(station.sta_info.rx_bitrate.bitrate),`
Near here -------------------------------------------------------^
Reference error: left-hand side expression is null
In assoc_flags(), file /usr/share/ucode/iwinfo.uc, line 216, byte 12:
called from function assoclist (/usr/share/ucode/iwinfo.uc:323:51)
called from function info (/usr/share/ucode/iwinfo.uc:427:33)
called from anonymous function (/usr/bin/iwinfo:108:25)
` if (data[k])`
Near here -------^
```
This was seen on Linksys MX5300 in mesh mode (QCA9984).
Signed-off-by: Sean Khan <datapronix@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/18027
Signed-off-by: John Crispin <john@phrozen.org>
snr: station.sta_info.signal_avg - ifaces[dev].noise,
inactive_time: station.sta_info.inactive_time,
rx: {
- bitrate: format_rate(station.sta_info.rx_bitrate.bitrate),
- bitrate_raw: station.sta_info.rx_bitrate.bitrate,
- packets: station.sta_info.rx_packets,
- flags: assoc_flags(station.sta_info.rx_bitrate),
+ bitrate: format_rate(station.sta_info.rx_bitrate?.bitrate ?? 0),
+ bitrate_raw: station.sta_info.rx_bitrate?.bitrate ?? 0,
+ packets: station.sta_info.rx_packets ?? 0,
+ flags: assoc_flags(station.sta_info.rx_bitrate ?? {}),
},
tx: {
- bitrate: format_rate(station.sta_info.tx_bitrate.bitrate),
- bitrate_raw: station.sta_info.tx_bitrate.bitrate,
- packets: station.sta_info.tx_packets,
- flags: assoc_flags(station.sta_info.tx_bitrate),
+ bitrate: format_rate(station.sta_info.tx_bitrate?.bitrate ?? 0),
+ bitrate_raw: station.sta_info.tx_bitrate?.bitrate ?? 0,
+ packets: station.sta_info.tx_packets ?? 0,
+ flags: assoc_flags(station.sta_info.tx_bitrate ?? {}),
},
expected_throughput: station.sta_info.expected_throughput ?? 'unknown',
};