luci-base: fix handling of monitor ifaces

Wireless monitor interfaces usually have no SSID set in their config and
various network model utility functions did not handle this case properly,
mainly while trying to incorperate the SSID string into various description
labels.

Fall back to the internal network id (radioX.networkY) in cases where neither
the SSID nor the BSSID are available.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
Jo-Philipp Wich 2016-08-04 11:40:34 +02:00
parent 240b8c4b6e
commit 123f14b55d

View file

@ -1140,10 +1140,7 @@ end
function interface.shortname(self) function interface.shortname(self)
if self.wif then if self.wif then
return "%s %q" %{ return self.wif:shortname()
self.wif:active_mode(),
self.wif:active_ssid() or self.wif:active_bssid()
}
else else
return self.ifname return self.ifname
end end
@ -1154,7 +1151,7 @@ function interface.get_i18n(self)
return "%s: %s %q" %{ return "%s: %s %q" %{
lng.translate("Wireless Network"), lng.translate("Wireless Network"),
self.wif:active_mode(), self.wif:active_mode(),
self.wif:active_ssid() or self.wif:active_bssid() self.wif:active_ssid() or self.wif:active_bssid() or self.wif:id()
} }
else else
return "%s: %q" %{ self:get_type_i18n(), self:name() } return "%s: %q" %{ self:get_type_i18n(), self:name() }
@ -1593,7 +1590,7 @@ end
function wifinet.shortname(self) function wifinet.shortname(self)
return "%s %q" %{ return "%s %q" %{
lng.translate(self:active_mode()), lng.translate(self:active_mode()),
self:active_ssid() or self:active_bssid() self:active_ssid() or self:active_bssid() or self:id()
} }
end end
@ -1601,7 +1598,7 @@ function wifinet.get_i18n(self)
return "%s: %s %q (%s)" %{ return "%s: %s %q (%s)" %{
lng.translate("Wireless Network"), lng.translate("Wireless Network"),
lng.translate(self:active_mode()), lng.translate(self:active_mode()),
self:active_ssid() or self:active_bssid(), self:active_ssid() or self:active_bssid() or self:id(),
self:ifname() self:ifname()
} }
end end