mirror of
https://github.com/ntop/ntopng.git
synced 2026-04-30 07:59:35 +00:00
91 lines
2.8 KiB
Lua
91 lines
2.8 KiB
Lua
--
|
|
-- (C) 2013-17 - ntop.org
|
|
--
|
|
|
|
--
|
|
-- This script is executed once at startup similar to /etc/rc.local on Unix
|
|
--
|
|
|
|
dirs = ntop.getDirs()
|
|
package.path = dirs.installdir .. "/scripts/lua/modules/?.lua;" .. package.path
|
|
|
|
if(ntop.isPro()) then
|
|
package.path = dirs.installdir .. "/pro/scripts/lua/modules/?.lua;" .. package.path
|
|
package.path = dirs.installdir .. "/pro/scripts/callbacks/?.lua;" .. package.path
|
|
end
|
|
|
|
require "lua_utils"
|
|
require "blacklist_utils"
|
|
|
|
local host_pools_utils = require "host_pools_utils"
|
|
local http_bridge_conf_utils = require "http_bridge_conf_utils"
|
|
|
|
local prefs = ntop.getPrefs()
|
|
|
|
-- restore sticky hosts
|
|
if prefs.sticky_hosts ~= nil then
|
|
-- if the sticky hosts are set, then we try and restore them out of redis
|
|
for _, ifname in pairs(interface.getIfNames()) do
|
|
interface.select(ifname)
|
|
local ifid = getInterfaceId(ifname)
|
|
-- an example key is ntopng.serialized_hosts.ifid_6__192.168.2.136@0
|
|
local keys_pattern = "ntopng.serialized_hosts.ifid_"..ifid.."__*"
|
|
local dumped_hosts = ntop.getKeysCache("ntopng.serialized_hosts.ifid_"..ifid.."__*")
|
|
|
|
if dumped_hosts ~= nil then
|
|
for hostkey, _ in pairs(dumped_hosts) do
|
|
-- let's extract just the host name and vlan from the whole key;
|
|
-- restore host will do the rest ...
|
|
local key_parts = string.split(hostkey, "__")
|
|
if key_parts ~= nil and key_parts[2] ~= nil then
|
|
local hostkey = key_parts[2]
|
|
|
|
interface.restoreHost(hostkey, true --[[ skip privileges checks: no web access --]])
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
host_pools_utils.initPools()
|
|
|
|
if(ntop.isPro()) then
|
|
shaper_utils = require "shaper_utils"
|
|
shaper_utils.initShapers()
|
|
end
|
|
|
|
-- Use a specific bridging_policy_target_type default for previous user installations
|
|
if isEmptyString(ntop.getPref("ntopng.prefs.bridging_policy_target_type")) then
|
|
for _, ifname in pairs(interface.getIfNames()) do
|
|
local ifid = getInterfaceId(ifname)
|
|
interface.select(ifname)
|
|
|
|
local stats = interface.getStats()
|
|
if stats.inline then
|
|
-- Override the default
|
|
ntop.setPref("ntopng.prefs.bridging_policy_target_type", "both")
|
|
break
|
|
end
|
|
end
|
|
end
|
|
|
|
-- ##################################################################
|
|
|
|
-- Remove the json dumps previously needed for alerts generation
|
|
for _, ifname in pairs(interface.getIfNames()) do
|
|
interface.select(ifname)
|
|
local ifid = getInterfaceId(ifname)
|
|
|
|
local alerts_status_path = fixPath(dirs.workingdir .. "/" .. ifid .. "/json/")
|
|
ntop.rmdir(alerts_status_path)
|
|
end
|
|
|
|
-- ##################################################################
|
|
|
|
initCustomnDPIProtoCategories()
|
|
loadHostBlackList()
|
|
|
|
-- TODO: migrate custom re-arm settings
|
|
|
|
-- this will retrieve host pools and policers configurtions via HTTP if enabled
|
|
http_bridge_conf_utils.configureBridge()
|