module("luci.controller.xlnetacc",package.seeall)

function index()
	if not nixio.fs.access("/etc/config/xlnetacc") then
		return
	end
	entry({"admin","services","xlnetacc"},firstchild(),_("XLNetAcc")).dependent=false
	entry({"admin","services","xlnetacc","general"},cbi("xlnetacc"),_("Settings"),1)
	entry({"admin","services","xlnetacc","log"},template("xlnetacc/logview"),_("Log"),2)
	entry({"admin","services","xlnetacc","status"},call("action_status"))
	entry({"admin","services","xlnetacc","logdata"},call("action_log"))
end

function action_status()
	luci.http.prepare_content("application/json")
	luci.http.write_json({
		run_state=luci.sys.call("ps -w | grep xlnetacc.sh | grep -v grep >/dev/null")==0,
		down_state=nixio.fs.readfile("/var/state/xlnetacc_down_state") or "",
		up_state=nixio.fs.readfile("/var/state/xlnetacc_up_state") or ""
	})
end

function action_log()
	local uci=require "luci.model.uci".cursor()
	local util=require "luci.util"
	local log_data={}

	log_data.syslog=util.trim(util.exec("logread | grep xlnetacc"))
	if uci:get("xlnetacc","general","logging")~="0" then
		log_data.client=nixio.fs.readfile("/var/log/xlnetacc.log") or ""
	end
	uci:unload("xlnetacc")
	luci.http.prepare_content("application/json")
	luci.http.write_json(log_data)
end
