-- -- (C) 2014-22 - ntop.org -- local clock_start = os.clock() local dscp_consts = require "dscp_consts" -- ############################################## function printGETParameters(get) for key, value in pairs(get) do io.write(key.."="..value.."\n") end end -- ############################################## function printASN(asn, asname) asname = asname:gsub('"','') if(asn > 0) then return(""..asname.." ") else return(asname) end end -- ############################################## function printIpVersionDropdown(base_url, page_params) local ipversion = _GET["version"] local ipversion_filter if not isEmptyString(ipversion) then ipversion_filter = '' else ipversion_filter = '' end -- table.clone needed to modify some parameters while keeping the original unchanged local ipversion_params = table.clone(page_params) ipversion_params["version"] = nil print[[\ \
]] end -- ############################################## function printVLANFilterDropdown(base_url, page_params) local vlans = interface.getVLANsList() if vlans == nil then vlans = {VLANs={}} end vlans = vlans["VLANs"] local ids = {} for _, vlan in ipairs(vlans) do ids[#ids + 1] = vlan["vlan_id"] end local vlan_id = _GET["vlan"] local vlan_id_filter = '' if not isEmptyString(vlan_id) then vlan_id_filter = '' end -- table.clone needed to modify some parameters while keeping the original unchanged local vlan_id_params = table.clone(page_params) vlan_id_params["vlan"] = nil print[[\ \ ]] end -- ############################################## function printDSCPDropdown(base_url, page_params, dscp_list) local dscp = _GET["dscp"] local dscp_filter if not isEmptyString(dscp) then dscp_filter = '' else dscp_filter = '' end -- table.clone needed to modify some parameters while keeping the original unchanged local dscp_params = table.clone(page_params) dscp_params["dscp"] = nil -- Used to possibly remove tcp state filters when selecting a non-TCP l4 protocol local dscp_params_non_filter = table.clone(dscp_params) if dscp_params_non_filter["dscp"] then dscp_params_non_filter["dscp"] = nil end local ordered_dscp_list = {} for key, value in pairs(dscp_list) do local name = dscp_consts.dscp_descr(key) ordered_dscp_list[name] = {} ordered_dscp_list[name]["id"] = key ordered_dscp_list[name]["count"] = value.count end print[[\ \ ]] end -- ################################### local function sub_quotes_to_string(string_to_fix) return string_to_fix:gsub("%'", "‘") end -- ################################### function printHostPoolDropdown(base_url, page_params, host_pool_list) local host_pools = require "host_pools" local host_pools_instance = host_pools:create() local host_pool = _GET["host_pool_id"] local host_pool_filter if not isEmptyString(host_pool) then host_pool_filter = '' else host_pool_filter = '' end -- table.clone needed to modify some parameters while keeping the original unchanged local host_pool_params = table.clone(page_params) host_pool_params["host_pool_id"] = nil -- Used to possibly remove tcp state filters when selecting a non-TCP l4 protocol local host_pool_params_non_filter = table.clone(host_pool_params) if host_pool_params_non_filter["host_pool_id"] then host_pool_params_non_filter["host_pool_id"] = nil end local ordered_host_pool_list = {} if host_pool then local id = tonumber(host_pool) ordered_host_pool_list[id] = {} ordered_host_pool_list[id]["count"] = host_pool_list[id]["count"] else for key, value in pairs(host_pool_list) do ordered_host_pool_list[key] = {} ordered_host_pool_list[key]["count"] = value.count end end print[[\ \ ]] end -- ################################### function printLocalNetworksDropdown(base_url, page_params) local networks_stats = interface.getNetworksStats() local ids = {} for n, local_network in pairs(networks_stats) do local network_name = getFullLocalNetworkName(local_network["network_key"]) ids[network_name] = local_network end local local_network_id = _GET["network"] local local_network_id_filter = '' if not isEmptyString(local_network_id) then local_network_id_filter = '' end -- table.clone needed to modify some parameters while keeping the original unchanged local local_network_id_params = table.clone(page_params) local_network_id_params["network"] = nil print[[\ \ ]] end -- ############################################## function printTrafficTypeFilterDropdown(base_url, page_params) local traffic_type = _GET["traffic_type"] local traffic_type_filter = '' if not isEmptyString(traffic_type) then traffic_type_filter = '' end -- table.clone needed to modify some parameters while keeping the original unchanged local traffic_type_params = table.clone(page_params) traffic_type_params["traffic_type"] = nil print[[\ \ ]] end -- ############################################## function printHostsDeviceFilterDropdown(base_url, page_params) -- Getting probes local flowdevs = interface.getFlowDevices() or {} local ordering_fun = pairsByKeys local cur_dev = _GET["deviceIP"] local cur_dev_filter = '' -- table.clone needed to modify some parameters while keeping the original unchanged local dev_params = table.clone(page_params) local devips = getProbesName(flowdevs) local devips_order = ntop.getPref("ntopng.prefs.flow_table_probe_order") == "1" -- Order by Probe Name if devips_order then ordering_fun = pairsByValues end if not isEmptyString(cur_dev) then cur_dev_filter = '' end dev_params["deviceIP"] = nil if table.len(devips) > 0 then print[[, '