small-packages/luci-app-fastnet/luasrc/model/cbi/fastnet.lua
2026-05-10 09:48:30 +08:00

48 lines
1.4 KiB
Lua

local sys = require "luci.sys"
local uci = require "luci.model.uci".cursor()
local http = require "luci.http"
local m = Map("fastnet", translate("FastNet"))
m.description = translate("FastNet provides network testing tools and a Web UI.")
local function get_host()
local host = http.getenv("HTTP_HOST") or http.getenv("SERVER_NAME") or ""
host = host:gsub(":%d+$", "")
if host == "_redirect2ssl" or host == "redirect2ssl" or host == "" then
host = http.getenv("SERVER_ADDR") or "localhost"
end
return host
end
local st = m:section(SimpleSection, translate("Status"))
local running = (sys.call("pidof FastNet >/dev/null") == 0)
local listen_port = uci:get_first("fastnet", "fastnet", "port") or "3200"
local token = uci:get_first("fastnet", "fastnet", "token") or ""
local url = "http://" .. get_host() .. ":" .. listen_port .. "/"
if token ~= "" then
url = url .. "?token=" .. token
end
st.template = "fastnet/status"
st.running = running
st.url = url
local s = m:section(TypedSection, "fastnet", translate("Settings"))
s.anonymous = true
local enabled = s:option(Flag, "enabled", translate("Enable"))
enabled.default = enabled.enabled
local port = s:option(Value, "port", translate("Listen Port"))
port.datatype = "port"
port.default = "3200"
local token = s:option(Value, "token", translate("API Token"))
token.password = true
token.rmempty = true
local logger = s:option(Flag, "logger", translate("Enable Logging"))
logger.rmempty = true
return m