-- -- (C) 2013-20 - ntop.org -- require "lua_utils" local recording_utils = require "recording_utils" local format_utils = require "format_utils" local ifstats = interface.getStats() local info = ntop.getInfo() if((not isAdministrator()) or (not recording_utils.isAvailable())) then return end -- POST check if(_SERVER["REQUEST_METHOD"] == "POST") then local record_traffic = false if not isEmptyString(_POST["record_traffic"]) then record_traffic = true end ntop.setCache('ntopng.prefs.ifid_'..ifstats.id..'.traffic_recording.enabled', ternary(record_traffic, "true", "false")) local disk_space = recording_utils.default_disk_space if not isEmptyString(_POST["disk_space"]) then disk_space = tonumber(_POST["disk_space"])*1024 end ntop.setCache('ntopng.prefs.ifid_'..ifstats.id..'.traffic_recording.disk_space', tostring(disk_space)) if recording_utils.isSupportedZMQInterface(ifid) then local ext_ifname if not isEmptyString(_POST["custom_name"]) then -- param check for ifname,_ in pairs(ext_interfaces) do if ifname == _POST["custom_name"] then ext_ifname = ifname break end end end if ext_ifname ~= nil then ntop.setCache('ntopng.prefs.ifid_'..ifstats.id..'.traffic_recording.ext_ifname', ext_ifname) end end if record_traffic then local config = {} config.max_disk_space = disk_space if recording_utils.isSupportedZMQInterface(ifid) then config.zmq_endpoint = recording_utils.getZMQProbeAddr(ifid) recording_utils.stop(ifstats.id) -- stop before starting as the interface can be changed end if recording_utils.createConfig(ifstats.id, config) then recording_utils.restart(ifstats.id) end else recording_utils.stop(ifstats.id) end end local record_traffic = ntop.getCache('ntopng.prefs.ifid_'..ifid..'.traffic_recording.enabled') local disk_space = ntop.getCache('ntopng.prefs.ifid_'..ifid..'.traffic_recording.disk_space') local storage_info = recording_utils.storageInfo(ifid) local max_space = recording_utils.recommendedSpace(ifid, storage_info) if record_traffic == "true" then record_traffic_checked = 'checked="checked"' record_traffic_value = "false" -- Opposite else record_traffic_checked = "" record_traffic_value = "true" -- Opposite end max_space = math.floor(max_space/(1024*1024*1024))*1024 if isEmptyString(disk_space) then disk_space = max_space end disk_space = tostring(math.floor(tonumber(disk_space)/1024)) print("

"..i18n("traffic_recording.traffic_recording_settings").."


") print [[
]] if recording_utils.isSupportedZMQInterface(ifid) then local ext_ifname = ntop.getCache('ntopng.prefs.ifid_'..ifid..'.traffic_recording.ext_ifname') if isEmptyString(ext_ifname) then for ifname,_ in pairs(ext_interfaces) do ext_ifname = ifname break end end print [[ ]] end print [[ ]] print [[ ]] print [[
]] print(i18n("traffic_recording.ext_interface")) print [[
]] print(i18n("traffic_recording.traffic_recording")) print [[
]] print(ternary(recording_utils.isSupportedZMQInterface(ifid), i18n("traffic_recording.continuous_recording_and_flows"), i18n("traffic_recording.continuous_recording"))) print [[
]] print(i18n("traffic_recording.disk_space")) print [[ GB
]] print(i18n("traffic_recording.disk_space_note") .. ternary(storage_info.if_used > 0, " "..i18n("traffic_recording.disk_space_note_in_use", {in_use=tostring(format_utils.round(storage_info.if_used/(1024*1024*1024), 2))}), "")) print[[
]] print(i18n("traffic_recording.storage_dir")) print [[ ]] print(recording_utils.getPcapPath(ifid)) print [[
]] print(i18n("traffic_recording.storage_utilization")) print [[ ]] local system_used = storage_info.total - storage_info.avail - storage_info.if_used - storage_info.extraction_used print(stackedProgressBars(storage_info.total, { { title = i18n("system"), value = system_used, class = "info", }, { title = i18n("traffic_recording.packet_dumps"), value = storage_info.if_used, class = "primary", }, { title = i18n("traffic_recording.extracted_packets"), value = storage_info.extraction_used, class = "warning", } }, i18n("free"), bytesToSize)) print[[


]] print(i18n("notes")) print[[ ]]