diff options
author | Mika Havela <mika.havela@gmail.com> | 2007-11-20 16:21:18 +0000 |
---|---|---|
committer | Mika Havela <mika.havela@gmail.com> | 2007-11-20 16:21:18 +0000 |
commit | 178d3b86a6e8b41de5b1d854c34c8f93b483444a (patch) | |
tree | 601df0cb22e64ebc9740f2f6b133adaadd6e28a2 | |
parent | 14e6f71062ae0a775d49935fa1e7b5580e8c6606 (diff) | |
download | acf-openvpn-178d3b86a6e8b41de5b1d854c34c8f93b483444a.tar.bz2 acf-openvpn-178d3b86a6e8b41de5b1d854c34c8f93b483444a.tar.xz |
View.read got some functionallity, like displaying programversion
git-svn-id: svn://svn.alpinelinux.org/acf/openvpn/trunk@345 ab2d0c66-481e-0410-8bed-d214d4d58bed
-rw-r--r-- | openvpn-controller.lua | 2 | ||||
-rw-r--r-- | openvpn-model.lua | 52 | ||||
-rw-r--r-- | openvpn-read-html.lsp | 4 |
3 files changed, 43 insertions, 15 deletions
diff --git a/openvpn-controller.lua b/openvpn-controller.lua index a0c973b..52dbfe9 100644 --- a/openvpn-controller.lua +++ b/openvpn-controller.lua @@ -115,7 +115,7 @@ end read = function (self) local me = {} me = cfe{name=conflistfilesaf, value="hej"} - return ( {conflistfiles = self.model:list_conffiles(), url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller} ) + return ( {conflistfiles = self.model:list_conffiles(), url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller, version = self.model:openvpn_version()} ) -- return ({conflistfiles = me}) -- return self.model:get() -- return build_form(self) diff --git a/openvpn-model.lua b/openvpn-model.lua index 2ef36d5..5d17dbb 100644 --- a/openvpn-model.lua +++ b/openvpn-model.lua @@ -21,21 +21,42 @@ local function read_file_as_array ( path ) return f end +local function is_cmdline(path, name) + local f = io.open(path.."/cmdline") + if f == nil then + return false + end + local line = f:read() + f:close() + if line == nil then + return false + end + local arg0 = string.gsub(line, string.char(0)..".*", "") + return posix.basename(arg0) == name +end + + + + local is_running = function( process, parameters ) - local retval = false - local pidofs = io.popen("pidof " .. process) - if pidofs ~= nil then - require ("pidof") - for k,v in pairs(pidof.pidof(process)) do --- for pidof in split(pidofs) do - local file = io.open( "/proc/" .. v .. "/cmdline" ) - local file_result = file:read("*a") or "unknown" - file:close() - retval = file_result - end + strsplit = require("split") + local retval = nil + local pidofsx,error = io.popen("pidof " .. process ,r) + local pidofs = strsplit(" ", pidofsx:read("*a")) + pidofsx:close() + if ( pidofs ~= nil ) then + for k,v in pairs(pidofs) do + local path = string.gsub("/proc/".. v .. "/cmdline", "%s", "") + local f = io.open(path) + local file_resultx = f:read("*a") + local file_result = string.match(file_resultx, parameters) + f:close() + if ( file_result ) then + retval = "Running" + end + end end - return retval end @@ -121,6 +142,13 @@ end -- ################################################################################ -- PUBLIC FUNCTIONS +function openvpn_version() + local f,error = io.popen("/usr/sbin/openvpn --version") + openvpnversion = f:read("*l") + f:close() + return openvpnversion +end + function list_conffiles() conlistfiles = {} local files = list_rootfolder() diff --git a/openvpn-read-html.lsp b/openvpn-read-html.lsp index 6854054..00a419a 100644 --- a/openvpn-read-html.lsp +++ b/openvpn-read-html.lsp @@ -19,7 +19,7 @@ <TR > <TD><?= html.link{value = view.url .. "/" .. view.conflistfiles[i].type .. "_config?config=" .. view.conflistfiles[i].value , label=view.conflistfiles[i].value } ?></TD> <TD><?= view.conflistfiles[i].type ?></TD> - <TD><?= view.conflistfiles[i].init ?></TD> + <TD><? if view.conflistfiles[i].init then ?><?= view.conflistfiles[i].init ?><? end ?></TD> <TD>xxx</TD> </TR> <? end ?> @@ -28,7 +28,7 @@ <h2>System info</h2> <dt>Program version</dt> -<dd>OpenVPN ver.x.x.x</dd> +<dd><?= view.version ?></dd> |