[net] calculate time in a more clean way

This commit is contained in:
Joerg T. (Mic92) 2011-08-18 19:48:22 +02:00
parent 7c14161608
commit fde2b12e02
1 changed files with 5 additions and 5 deletions

View File

@ -47,17 +47,15 @@ local function worker(format)
local sysnet = helpers.pathtotable("/sys/class/net/" .. name) local sysnet = helpers.pathtotable("/sys/class/net/" .. name)
args["{"..name.." carrier}"] = tonumber(sysnet.carrier) or 0 args["{"..name.." carrier}"] = tonumber(sysnet.carrier) or 0
local now = os.time()
if nets[name] == nil then if nets[name] == nil then
-- Default values on the first run -- Default values on the first run
nets[name] = {} nets[name] = {}
helpers.uformat(args, name .. " down", 0, unit) helpers.uformat(args, name .. " down", 0, unit)
helpers.uformat(args, name .. " up", 0, unit) helpers.uformat(args, name .. " up", 0, unit)
nets[name].time = os.time()
else -- Net stats are absolute, substract our last reading else -- Net stats are absolute, substract our last reading
local interval = os.time() - nets[name].time > 0 and local interval = now - nets[name].time
os.time() - nets[name].time or 1 if interval < 0 then interval = 1 end
nets[name].time = os.time()
local down = (recv - nets[name][1]) / interval local down = (recv - nets[name][1]) / interval
local up = (send - nets[name][2]) / interval local up = (send - nets[name][2]) / interval
@ -66,6 +64,8 @@ local function worker(format)
helpers.uformat(args, name .. " up", up, unit) helpers.uformat(args, name .. " up", up, unit)
end end
nets[name].time = now
-- Store totals -- Store totals
nets[name][1] = recv nets[name][1] = recv
nets[name][2] = send nets[name][2] = send