Changeset 6704

Show
Ignore:
Timestamp:
01/11/11 00:23:32 (2 years ago)
Author:
jow
Message:

modules/admin-full: rework wep/wpa key handling

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • luci/trunk/modules/admin-full/luasrc/model/cbi/admin_network/wifi.lua

    r6359 r6704  
    594594port.rmempty = true 
    595595 
    596 key = s:taboption("encryption", Value, "key", translate("Key")) 
    597 key:depends("encryption", "wep-open") 
    598 key:depends("encryption", "wep-shared") 
    599 key:depends("encryption", "psk") 
    600 key:depends("encryption", "psk2") 
    601 key:depends("encryption", "psk+psk2") 
    602 key:depends("encryption", "psk-mixed") 
    603 key:depends({mode="ap", encryption="wpa"}) 
    604 key:depends({mode="ap", encryption="wpa2"}) 
    605 key:depends({mode="ap-wds", encryption="wpa"}) 
    606 key:depends({mode="ap-wds", encryption="wpa2"}) 
    607 key.rmempty = true 
    608 key.password = true 
     596wpakey = s:taboption("encryption", Value, "_wpa_key", translate("Key")) 
     597wpakey:depends("encryption", "psk") 
     598wpakey:depends("encryption", "psk2") 
     599wpakey:depends("encryption", "psk+psk2") 
     600wpakey:depends("encryption", "psk-mixed") 
     601wpakey:depends({mode="ap", encryption="wpa"}) 
     602wpakey:depends({mode="ap", encryption="wpa2"}) 
     603wpakey:depends({mode="ap-wds", encryption="wpa"}) 
     604wpakey:depends({mode="ap-wds", encryption="wpa2"}) 
     605wpakey.datatype = "wpakey" 
     606wpakey.rmempty = true 
     607wpakey.password = true 
     608 
     609wpakey.cfgvalue = function(self, section, value) 
     610    local key = m.uci:get("wireless", section, "key") 
     611    if key == "1" or key == "2" or key == "3" or key == "4" then 
     612        return nil 
     613    end 
     614    return key 
     615end 
     616 
     617wpakey.write = function(self, section, value) 
     618    self.map.uci:set("wireless", section, "key", value) 
     619    self.map.uci:delete("wireless", section, "key1") 
     620end 
     621 
     622 
     623wepslot = s:taboption("encryption", ListValue, "_wep_key", translate("Used Key Slot")) 
     624wepslot:depends("encryption", "wep-open") 
     625wepslot:depends("encryption", "wep-shared") 
     626wepslot:value("1", translatef("Key #%d", 1)) 
     627wepslot:value("2", translatef("Key #%d", 2)) 
     628wepslot:value("3", translatef("Key #%d", 3)) 
     629wepslot:value("4", translatef("Key #%d", 4)) 
     630 
     631wepslot.cfgvalue = function(self, section) 
     632    local slot = tonumber(m.uci:get("wireless", section, "key")) 
     633    if not slot or slot < 1 or slot > 4 then 
     634        return 1 
     635    end 
     636    return slot      
     637end 
     638 
     639wepslot.write = function(self, section, value) 
     640    self.map.uci:set("wireless", section, "key", value) 
     641end 
     642 
     643local slot 
     644for slot=1,4 do 
     645    wepkey = s:taboption("encryption", Value, "key" .. slot, translatef("Key #%d", slot)) 
     646    wepkey:depends("encryption", "wep-open") 
     647    wepkey:depends("encryption", "wep-shared") 
     648    wepkey.datatype = "wepkey" 
     649    wepkey.rmempty = true 
     650    wepkey.password = true 
     651     
     652    function wepkey.write(self, section, value) 
     653        if value and (#value == 5 or #value == 13) then 
     654            value = "s:" .. value 
     655        end 
     656        return Value.write(self, section, value) 
     657    end 
     658end 
     659 
    609660 
    610661if hwtype == "atheros" or hwtype == "mac80211" or hwtype == "prism2" then