summaryrefslogtreecommitdiffstats
path: root/dansguardian-model.lua
diff options
context:
space:
mode:
Diffstat (limited to 'dansguardian-model.lua')
-rw-r--r--dansguardian-model.lua88
1 files changed, 45 insertions, 43 deletions
diff --git a/dansguardian-model.lua b/dansguardian-model.lua
index 63694e2..b02b99b 100644
--- a/dansguardian-model.lua
+++ b/dansguardian-model.lua
@@ -1,61 +1,60 @@
--- acf model for squid
-- Copyright(c) 2007 A. Brodmann - Licensed under terms of GPL2
module (..., package.seeall)
+-- Load libraries
require "posix"
require "format"
+require("processinfo")
+require("procps")
+require("daemoncontrol")
+-- Set variables
dansguardiancfg = "/etc/dansguardian/dansguardian.conf"
dansguardiancfg2 = "/etc/dansguardian/dansguardianf1.conf"
-
-get_status = function()
-
- local retval = "stopped"
-
- local ptr = io.popen( "/bin/pidof dansguardian" )
- local pid = ptr:read( "*a" )
- ptr:close()
- if pid ~= nil then
- if #pid > 1 then
- retval = "running"
- end
- end
-
+local processname = "dansguardian"
+local packagename = "dansguardian"
+
+get_autostart = function()
+ local autostart_sequense, autostart_errtxt = processinfo.process_botsequence(processname)
+ local retval = cfe({ name="autostart",
+ label="Autostart sequence",
+ value=autostart_sequense,
+ errtxt=autostart_errtxt,
+ })
return retval
end
-service_control = function( control )
-
- local retval = ""
-
- local ptr = io.popen( "/etc/init.d/dansguardian " .. control, "r" )
- if ptr ~= nil then
- local retmsg = ptr:read( "*a" )
- ptr:close()
- if retmsg ~= nil then
- retval = retmsg
- else
- retval = "service_control(): Failed to read output from initscript!\n"
- end
+get_status = function()
+ local t = procps.pidof(procname)
+ local stats
+ if (t) and (#t > 0) then
+ stats = "Enabled"
else
- retval = "service_control(): Failed to start/stop/restart service!\n"
+ stats = "Disabled"
end
-
+ local retval = cfe({ name="status",
+ label="Program status",
+ value=stats,
+ })
return retval
end
-get_dansguardian_version = function()
+service_control = function( cmd )
+ local action = {value=cmd}
+ local cmdresult,cmdmessage,cmderror,cmdaction = daemoncontrol.daemoncontrol(processname, cmd)
+ action.descr=cmdmessage
+ action.errtxt=cmderror
+ return cmdresult,action
+end
- local retval = ""
-
- local ptr = io.popen( "/usr/sbin/dansguardian -v" )
- if ptr ~= nil then
- retval = ptr:read( "*l" )
- ptr:close()
- else
- retval = "Error - Failed to program version"
- end
-
+
+get_dansguardian_version = function()
+ local value, errtxt = processinfo.package_version(packagename)
+ local retval = cfe({ name = "version",
+ label="Program version",
+ value=value,
+ errtxt=errtxt,
+ })
return retval
end
@@ -318,7 +317,10 @@ get_file_tree = function( treetable, dir, prefix )
for k,v in ipairs( entries ) do
local attrs = posix.stat( dir .. "/" .. v )
if attrs.type == "regular" and string.sub( v, -4) ~= ".gif" then
- table.insert( treetable, prefix .. v )
+ local path = dir .. "/" .. v
+ local filedetails = fs.stat(path)
+ filedetails.path = prefix .. v
+ table.insert( treetable, filedetails )
end
end
@@ -344,7 +346,7 @@ is_valid_configfile = function( name )
get_file_tree( ftable, "/etc/dansguardian", "" )
for k,v in ipairs( ftable ) do
- if v == name then
+ if v.path == name then
retval = true
end
end