Changeset 5387

Show
Ignore:
Timestamp:
10/10/09 05:46:26 (4 years ago)
Author:
jow
Message:

libs/core: extend network model, only allow one zone per network

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • luci/trunk/libs/core/luasrc/model/network.lua

    r5379 r5387  
    2323local lmo = require "lmo" 
    2424local nxo = require "nixio" 
     25local nfs = require "nixio.fs" 
    2526local iwi = require "iwinfo" 
    2627local ipc = require "luci.ip" 
     
    9596end 
    9697 
     98function has_ipv6(self) 
     99    return nfs.access("/proc/net/ipv6_route") 
     100end 
     101 
    97102function add_network(self, n, options) 
    98103    if n and #n > 0 and n:match("^[a-zA-Z0-9_]+$") and not self:get_network(n) then 
     
    269274end 
    270275 
     276function interface.mac(self) 
     277    return self.dev.macaddr or "00:00:00:00:00:00" 
     278end 
     279 
     280function interface.ipaddrs(self) 
     281    return self.dev.ipaddrs or { } 
     282end 
     283 
     284function interface.ip6addrs(self) 
     285    return self.dev.ip6addrs or { } 
     286end 
     287 
    271288function interface.type(self) 
    272289    if iwi.type(self.ifname) and iwi.type(self.ifname) ~= "dummy" then 
     
    299316        local ifaces = { } 
    300317        for _, iface in ipairs(self.br.ifnames) do 
    301             ifaces[#ifaces+1] = interface(iface) 
     318            ifaces[#ifaces+1] = interface(iface.name) 
    302319        end 
    303320        return ifaces 
     321    end 
     322end 
     323 
     324function interface.bridge_id(self) 
     325    if self.br then 
     326        return self.br.id 
     327    else 
     328        return nil 
     329    end 
     330end 
     331 
     332function interface.bridge_stp(self) 
     333    if self.br then 
     334        return self.br.stp 
     335    else 
     336        return false 
    304337    end 
    305338end 
     
    313346end 
    314347 
     348function interface.is_bridgeport(self) 
     349    return self.dev and self.dev.bridge and true or false 
     350end 
     351 
     352function interface.tx_bytes(self) 
     353    return self.dev and self.dev.stats 
     354        and self.dev.stats.tx_bytes or 0 
     355end 
     356 
     357function interface.rx_bytes(self) 
     358    return self.dev and self.dev.stats 
     359        and self.dev.stats.rx_bytes or 0 
     360end 
     361 
     362function interface.tx_packets(self) 
     363    return self.dev and self.dev.stats 
     364        and self.dev.stats.tx_packets or 0 
     365end 
     366 
     367function interface.rx_packets(self) 
     368    return self.dev and self.dev.stats 
     369        and self.dev.stats.rx_packets or 0 
     370end 
     371 
    315372function interface.get_network(self) 
    316     local net 
    317     for _, net in ipairs(_M:get_networks()) do 
    318         if net:contains_interface(self.ifname) then 
    319             return net 
    320         end 
    321     end 
    322 end 
    323  
     373    if not self.network then 
     374        local net 
     375        for _, net in ipairs(_M:get_networks()) do 
     376            if net:contains_interface(self.ifname) then 
     377                self.network = net 
     378                return net 
     379            end 
     380        end 
     381    else 
     382        return self.network 
     383    end 
     384end 
     385