diff options
Diffstat (limited to 'dansguardian-model.lua')
-rw-r--r-- | dansguardian-model.lua | 88 |
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 |