mirror of
https://github.com/ntop/ntopng.git
synced 2026-04-30 07:59:35 +00:00
55 lines
1.9 KiB
Lua
55 lines
1.9 KiB
Lua
--
|
|
-- (C) 2013-17 - ntop.org
|
|
--
|
|
|
|
local dirs = ntop.getDirs()
|
|
package.path = dirs.installdir .. "/scripts/lua/modules/?.lua;" .. package.path
|
|
|
|
require "lua_utils"
|
|
local callback_utils = require "callback_utils"
|
|
local discover_utils = require "discover_utils"
|
|
|
|
local discovery_enabled = (ntop.getPref("ntopng.prefs.is_network_discovery_enabled") == "1")
|
|
local ifnames = interface.getIfNames()
|
|
|
|
local requests = false
|
|
callback_utils.foreachInterface(ifnames, nil, function(ifname, ifstats)
|
|
if discover_utils.networkDiscoveryRequested(ifstats.id) then
|
|
requests = true
|
|
end
|
|
end)
|
|
|
|
if discovery_enabled or requests then
|
|
|
|
local now = os.time()
|
|
local discovery_interval = ntop.getPref("ntopng.prefs.network_discovery_interval")
|
|
if isEmptyString(discovery_interval) then discovery_interval = 15 * 60 end
|
|
|
|
local diff = now % tonumber(discovery_interval)
|
|
|
|
if diff < 5 then
|
|
callback_utils.foreachInterface(ifnames, nil, function(ifname, ifstats)
|
|
if interface.isDiscoverableInterface() and discover_utils.interfaceNetworkDiscoveryEnabled(ifstats.id) then
|
|
local res
|
|
|
|
ntop.traceEvent("[Discover] Started periodic discovery on interface "..ifname.."\n")
|
|
res = discover_utils.discover2table(ifname, true --[[ recache --]])
|
|
ntop.traceEvent("[Discover] Completed periodic discovery on interface "..ifname.."\n")
|
|
discover_utils.clearNetworkDiscovery(ifstats.id)
|
|
end
|
|
end)
|
|
|
|
elseif requests then
|
|
callback_utils.foreachInterface(ifnames, nil, function(ifname, ifstats)
|
|
if discover_utils.networkDiscoveryRequested(ifstats.id) then
|
|
local res
|
|
|
|
ntop.traceEvent("[Discover] Started triggered discovery on interface "..ifname.."\n")
|
|
res = discover_utils.discover2table(ifname, true --[[ recache --]])
|
|
ntop.traceEvent("[Discover] Completed triggered discovery on interface "..ifname.."\n")
|
|
discover_utils.clearNetworkDiscovery(ifstats.id)
|
|
end
|
|
|
|
end)
|
|
end
|
|
end
|