luci-base: properly handle getWifiNetidBySid() return value

The getWifiNetidBySid() helper returns an array containing the network id
and the corresponding radio name, not just the id.

Fixes: #2846.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
Jo-Philipp Wich 2019-07-09 17:48:46 +02:00
parent e5b233f325
commit ffdafd4800

View file

@ -966,7 +966,7 @@ Network = L.Class.extend({
radiostate = res[1]; radiostate = res[1];
netstate = res[2]; netstate = res[2];
sid = netstate.section; sid = netstate.section;
netid = getWifiNetidBySid(sid); netid = L.toArray(getWifiNetidBySid(sid))[0];
} }
else { else {
res = getWifiStateBySid(netname); res = getWifiStateBySid(netname);
@ -976,7 +976,7 @@ Network = L.Class.extend({
radiostate = res[1]; radiostate = res[1];
netstate = res[2]; netstate = res[2];
sid = netname; sid = netname;
netid = getWifiNetidBySid(sid); netid = L.toArray(getWifiNetidBySid(sid))[0];
} }
else { else {
res = getWifiNetidBySid(netname); res = getWifiNetidBySid(netname);
@ -1015,9 +1015,9 @@ Network = L.Class.extend({
uci.set('wireless', sid, key, options[key]); uci.set('wireless', sid, key, options[key]);
var radioname = existingDevice['.name'], var radioname = existingDevice['.name'],
netid = getWifiNetidBySid(sid); netid = getWifiNetidBySid(sid) || [];
return this.instantiateWifiNetwork(sid, radioname, _cache.wifi[radioname], netid, null, { ifname: netid }); return this.instantiateWifiNetwork(sid, radioname, _cache.wifi[radioname], netid[0], null, { ifname: netid });
}, this)); }, this));
}, },
@ -1469,7 +1469,7 @@ Protocol = L.Class.extend({
ifname = getWifiNetidByNetname(this.sid); ifname = getWifiNetidByNetname(this.sid);
return (ifname != null ? L.network.instantiateDevice(ifname, this) : null); return (ifname != null ? L.network.instantiateDevice(ifname[0], this) : null);
} }
}, },
@ -1552,9 +1552,9 @@ Device = L.Class.extend({
if (wif != null) { if (wif != null) {
var res = getWifiStateBySid(wif) || [], var res = getWifiStateBySid(wif) || [],
netid = getWifiNetidBySid(wif); netid = getWifiNetidBySid(wif) || [];
this.wif = new WifiNetwork(wif, res[0], res[1], netid, res[2], { ifname: ifname }); this.wif = new WifiNetwork(wif, res[0], res[1], netid[0], res[2], { ifname: ifname });
this.ifname = this.wif.getIfname(); this.ifname = this.wif.getIfname();
} }
@ -1588,7 +1588,7 @@ Device = L.Class.extend({
}, },
getType: function() { getType: function() {
if (this.ifname.charAt(0) == '@') if (this.ifname != null && this.ifname.charAt(0) == '@')
return 'alias'; return 'alias';
else if (this.wif != null || isWifiIfname(this.ifname)) else if (this.wif != null || isWifiIfname(this.ifname))
return 'wifi'; return 'wifi';