diff options
author | Mika Havela <mika.havela@gmail.com> | 2008-03-28 09:03:33 +0000 |
---|---|---|
committer | Mika Havela <mika.havela@gmail.com> | 2008-03-28 09:03:33 +0000 |
commit | a8b03832913061456afd218987402fed23ad076d (patch) | |
tree | c4ee1fabd2be3fce361b0a9e610cd3322cfd87b7 /ipsectools-model.lua | |
parent | 21e2053e9a09638f9af7a0861a0faf33351c5129 (diff) | |
download | acf-ipsec-tools-a8b03832913061456afd218987402fed23ad076d.tar.bz2 acf-ipsec-tools-a8b03832913061456afd218987402fed23ad076d.tar.xz |
Renamed ipsec-tools to ipsectools to come around a but with the menu-system
git-svn-id: svn://svn.alpinelinux.org/acf/ipsec-tools/trunk@850 ab2d0c66-481e-0410-8bed-d214d4d58bed
Diffstat (limited to 'ipsectools-model.lua')
-rw-r--r-- | ipsectools-model.lua | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/ipsectools-model.lua b/ipsectools-model.lua new file mode 100644 index 0000000..5545c78 --- /dev/null +++ b/ipsectools-model.lua @@ -0,0 +1,110 @@ +module(..., package.seeall) + +require("fs") +require("procps") +require("getopts") +require("format") +require("daemoncontrol") +require("validator") + +local configfile = "/etc/racoon/racoon.conf" +local processname = "racoon" +local pkgname = "ipsec-tools" +local baseurl = "/etc/racoon/" + +local function get_version() + local cmd_output_result, cmd_output_error + local cmd = "/sbin/apk_version -vs " .. pkgname .." 2>/dev/null" + local f = io.popen( cmd ) + local cmdresult = f:read("*l") + if (cmdresult) and (#cmdresult > 0) then + cmd_output_result = string.match(cmdresult,"^%S*") or "Unknown" + else + cmd_output_error = "Program not installed" + end + f:close() + return cmd_output_result,cmd_output_error +end + +local function autostarts() + local cmd_output_result + local cmd = "/sbin/rc_status | egrep '^S' | egrep '" .. processname .."' 2>/dev/null" + local f = io.popen( cmd ) + local cmdresult = f:read("*a") + if (cmdresult) and (#cmdresult > 0) then + cmd_output_result = "Process will autostart at next boot (at sequence '" .. string.match(cmdresult,"^%a+(%d%d)") .. "')" + else + cmd_output_error = "Not programmed to autostart" + end + f:close() + return cmd_output_result + +end + +local function racoonctl() + local cmd_output_result, cmd_output_error + local cmd = "/usr/sbin/racoonctl -lll show-sa isakmp 2>/dev/null" + local f = io.popen( cmd ) + local cmd_output_result = f:read("*a") + f:close() + return cmd_output_result,cmd_output_error +end + +local function ip_xfrm(mode) + local cmd_output_result + local cmd = "/bin/ip xfrm " .. mode .. " 2>/dev/null" + local f = io.popen( cmd ) + local cmd_output_result = f:read("*a") + f:close() + return cmd_output_result +end + +function process_status_text(procname) + local t = procps.pidof(procname) + if #t > 0 then + return "Enabled" + else + return "Disabled" + end +end + +-- ################################################################################ +-- PUBLIC FUNCTIONS + + +function getstatus() + local status = {} + status.version = cfe({ name = "version", + label="Program version", + value=get_version(), + }) + status.status = cfe({ name="status", + label="Program status", + value=process_status_text(processname), + }) + local autostart_sequense, autostart_errtxt = autostarts() + status.autostart = cfe({ name="autostart", + label="Autostart sequence", + value=autostart_sequense, + errtxt=autostart_errtxt, + }) + + status.show_isakmp = cfe({ name="show_isakmp", + label="racoonctl -lll show-sa isakmp", + value=racoonctl(), + }) + + status.ip_xfrm_state = cfe({ name="show_esp", + label="ip xfrm state", + value=ip_xfrm("state"), + }) + + status.ip_xfrm_policy = cfe({ name="ip_xfrm_policy", + label="ip xfrm policy", + value=ip_xfrm("policy"), + }) + + return status +end + + |