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