summaryrefslogtreecommitdiffstats
path: root/dansguardian-model.lua
diff options
context:
space:
mode:
Diffstat (limited to 'dansguardian-model.lua')
-rw-r--r--dansguardian-model.lua354
1 files changed, 0 insertions, 354 deletions
diff --git a/dansguardian-model.lua b/dansguardian-model.lua
deleted file mode 100644
index 1abec68..0000000
--- a/dansguardian-model.lua
+++ /dev/null
@@ -1,354 +0,0 @@
--- acf model for squid
--- Copyright(c) 2007 A. Brodmann - Licensed under terms of GPL2
-module (..., package.seeall)
-
-require "posix"
-require "format"
-
-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
-
- 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
- else
- retval = "service_control(): Failed to start/stop/restart service!\n"
- end
-
- return retval
-end
-
-get_dansguardian_version = function()
-
- 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
-
- return retval
-end
-
-get_general_config = function()
-
- local retval = {}
- local error = ""
-
- retval = { filterip = { label="Filter IP", type="text", value="" },
- filterport = { label="Filter Port", type="text", value="" },
- proxyip = { label="Proxy IP", type="text", value="" },
- proxyport = { label="Proxy Port", type="text", value="" },
- accessdeniedaddress = { label="AccessDeniedAddress", type="text", value="" },
- naughtynesslimit = { label="NaughtynessLimit", type="text", value="" }
- }
-
- local fptr = io.open( dansguardiancfg, "r" )
- if fptr ~= nil then
- local line = fptr:read( "*l" )
- while line ~= nil do
- if string.sub( line, 1, 1 ) ~= "#" then
- if string.sub( line, 1, 8 ) == "filterip" then
- retval.filterip.value = get_cfg_value( line )
- elseif string.sub( line, 1, 10 ) == "filterport" then
- retval.filterport.value = get_cfg_value( line )
- elseif string.sub( line, 1, 7 ) == "proxyip" then
- retval.proxyip.value = get_cfg_value( line )
- elseif string.sub( line, 1, 9 ) == "proxyport" then
- retval.proxyport.value = get_cfg_value( line )
- elseif string.sub( line, 1, 19 ) == "accessdeniedaddress" then
- retval.accessdeniedaddress.value = get_cfg_value( line )
- end
- end
- line = fptr:read( "*l" ) -- read one config file
- end
- fptr:close()
- else
- error = "Failed to open " .. dansguardiancfg .. " file!"
- end
-
- local fptr2 = io.open( dansguardiancfg2, "r" )
- if fptr2 ~= nil then
- local line = fptr2:read( "*l" )
- while line ~= nil do
- if string.sub( line, 1, 1 ) ~= "#" then
- if string.sub( line, 1, 16 ) == "naughtynesslimit" then
- retval.naughtynesslimit.value = get_cfg_value( line )
- end
- end
- line = fptr2:read( "*l" ) -- read one config file line
- end
- fptr2:close()
- else
- error = "Failed to open " .. dansguardiancfg2 .. " file!"
- end
-
- return retval, error
-end
-
-get_plain_config = function()
-
- local retval = ""
- local error = ""
-
- local fptr = io.open( dansguardiancfg, "r" )
- if fptr ~= nil then
- retval = fptr:read( "*a" )
- fptr:close()
- if retval == nil then
- retval = ""
- error = "Failed to read " .. dansguardiancfg .. " file!"
- end
- else
- error = "Failed to open " .. dansguardiancfg .. " file!"
- end
-
- return retval, error
-end
-
-get_edit_config = function( name )
-
- local retval = ""
- local error = ""
-
- if not is_valid_configfile( name ) then
- return "", "Hacker"
- end
-
- local fptr = io.open( "/etc/dansguardian/" .. name )
- if fptr ~= nil then
- retval = fptr:read( "*a" )
- fptr:close()
- if retval == nil then
- retval = ""
- error = "Failed to read /etc/dansguardian/" .. name .. " file!"
- end
- else
- error = "Failed to open /etc/dansguardian/" .. name .. " file!"
- end
-
- return retval, error
-end
-
-update_edit_config = function( name, config )
-
- local retval = ""
-
- if not is_valid_configfile( name ) then
- return "", "Hacker"
- end
-
- local fptr = io.open( "/etc/dansguardian/" .. name, "wb+" )
- if fptr ~= nil then
- fptr:write( format.dostounix( config ) )
- fptr:close()
- retval = ""
- else
- error = "Failed to open /etc/dansguardian/" .. name .. " file!"
- end
-
- return retval
-end
-
-update_general_config = function( config )
-
- local retval = ""
- local tmpfilename = os.tmpname()
- local tmpfile = -1
- local cfgptr = -1
- local line = ""
-
- tmpfile = io.open( tmpfilename, "wb+" )
- if tmpfile == nil then
- return "Failed to create temporary config file!"
- end
-
- cfgptr = io.open( dansguardiancfg, "r" )
- if cfgptr == nil then
- tmpfile:close()
- os.remove( tmpfilename )
- return "Failed to open " .. dansguardiancfg .. "!"
- end
-
- line = cfgptr:read( "*l" )
- while line ~= nil do
- if string.sub( line, 1, 8 ) == "filterip" then
- tmpfile:write( "filterip = " .. config.filterip .. "\n" )
- elseif string.sub( line, 1, 10 ) == "filterport" then
- tmpfile:write( "filterport = " .. config.filterport .. "\n" )
- elseif string.sub( line, 1, 7 ) == "proxyip" then
- tmpfile:write( "proxyip = " .. config.proxyip .. "\n" )
- elseif string.sub( line, 1, 9 ) == "proxyport" then
- tmpfile:write( "proxyport = " .. config.proxyport .. "\n" )
- elseif string.sub( line, 1, 19 ) == "accessdeniedaddress" then
- tmpfile:write( "accessdeniedaddress = " .. config.accessdeniedaddress .. "\n" )
- else
- tmpfile:write( line .. "\n" )
- end
- line = cfgptr:read( "*l" )
- end
-
- tmpfile:close()
- cfgptr:close()
- os.rename( tmpfilename, dansguardiancfg )
-
- --- step 2 - dansguardiancfg2
-
- tmpfile = io.open( tmpfilename, "wb+" )
- if tmpfile == nil then
- return "Failed to create temporary config file!"
- end
-
- cfgptr = io.open( dansguardiancfg2, "r" )
- if cfgptr == nil then
- tmpfile:close()
- os.remove( tmpfilename )
- return "Failed to open " .. dansguardiancfg2 .. "!"
- end
-
- line = cfgptr:read( "*l" )
- while line ~= nil do
- if string.sub( line, 1, 16 ) == "naughtynesslimit" then
- tmpfile:write( "naughtynesslimit = " .. config.naughtynesslimit .. "\n" )
- else
- tmpfile:write( line .. "\n" )
- end
- line = cfgptr:read( "*l" )
- end
-
- tmpfile:close()
- cfgptr:close()
- os.rename( tmpfilename, dansguardiancfg2 )
-
- return retval
-end
-
-update_plain_config = function( config )
-
- local retval = ""
- local cfgptr = -1
- local error = ""
-
- cfgptr = io.open( dansguardiancfg, "wb+" )
- if cfgptr ~= nil then
- cfgptr:write( config )
- cfgptr:close()
- else
- retval = "Failed to open " .. dansguardiancfg .. " file!"
- end
-
- return retval
-end
-
-get_cfg_value = function( str )
-
- local retval = ""
- local pos = 1
- local found = false
- local found2 = false
-
- while not found and pos < #str -1 do
- if string.sub( str, pos, pos ) == "=" then
- found = true
- end
- pos = pos + 1
- end
-
- if found then
- pos = pos - 1
- while not found2 and pos < #str -1 do
- if string.sub( str, pos+1, pos+1 ) ~= " " then
- found2 = true
- end
- pos = pos + 1
- end
- end
-
- if found2 then
- retval = string.sub( str, pos )
- end
-
- return retval
-end
-
-get_advanced_config = function()
-
- local retval = { files = {} }
- local errmsg = ""
-
- get_file_tree( retval.files, "/etc/dansguardian", "" )
-
- return retval, errmsg
-end
-
-get_file_tree = function( treetable, dir, prefix )
-
- local entries = posix.dir( dir )
- local k = ""
- local v = ""
- 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 )
- end
- end
-
- entries = posix.dir( dir )
- for k,v in ipairs( entries ) do
- local attrs = posix.stat( dir .. "/" .. v )
- if attrs.type == "directory" and v~= "." and v~= ".." then
- get_file_tree( treetable, dir .. "/" .. v, prefix .. v .. "/" )
- end
- end
-
- return
-end
-
-is_valid_configfile = function( name )
-
- local retval = false
- local ftable = {}
- local k
- local v
-
-
- get_file_tree( ftable, "/etc/dansguardian", "" )
-
- for k,v in ipairs( ftable ) do
- if v == name then
- retval = true
- end
- end
-
- return retval
-end
-