diff options
author | Mika Havela <mika.havela@gmail.com> | 2008-03-26 14:41:22 +0000 |
---|---|---|
committer | Mika Havela <mika.havela@gmail.com> | 2008-03-26 14:41:22 +0000 |
commit | 34db03ce3b6a455a17da33bf10a8eb0165b90c2c (patch) | |
tree | aa27e055e2ec913cfea979e1c865c2f35429e931 | |
download | acf-opennhrp-34db03ce3b6a455a17da33bf10a8eb0165b90c2c.tar.bz2 acf-opennhrp-34db03ce3b6a455a17da33bf10a8eb0165b90c2c.tar.xz |
First commit on opennhrp.
Only shows standard process information and shows connected peers (or what to call them).
git-svn-id: svn://svn.alpinelinux.org/acf/opennhrp/trunk@841 ab2d0c66-481e-0410-8bed-d214d4d58bed
-rw-r--r-- | opennhrp-controller.lua | 37 | ||||
-rw-r--r-- | opennhrp-model.lua | 84 | ||||
-rw-r--r-- | opennhrp-status-html.lsp | 74 | ||||
-rw-r--r-- | opennhrp.menu | 3 |
4 files changed, 198 insertions, 0 deletions
diff --git a/opennhrp-controller.lua b/opennhrp-controller.lua new file mode 100644 index 0000000..e592bbc --- /dev/null +++ b/opennhrp-controller.lua @@ -0,0 +1,37 @@ +module(..., package.seeall) + +-- This is the object/text used when we want to add a new record + +require("format") + +local newrecordtxt = "[New]" + +local list_redir = function (self) + self.conf.action = "status" + self.conf.type = "redir" + error (self.conf) +end + +mvc = {} +mvc.on_load = function(self, parent) + if (self.worker[self.conf.action] == nil ) or ( self.conf.action == "init" ) then + self.worker[self.conf.action] = list_redir(self) + end +end + +local function getstatus(self) + local status = self.model.getstatus() + if (#status.status.value > 0) then + status.status.value = "Enabled" + else + status.status.value = "Disabled" + end + + return status +end +-- ################################################################################ +-- PUBLIC FUNCTIONS +function status(self) + return { status=getstatus(self) } +end + diff --git a/opennhrp-model.lua b/opennhrp-model.lua new file mode 100644 index 0000000..ebff6a8 --- /dev/null +++ b/opennhrp-model.lua @@ -0,0 +1,84 @@ +module(..., package.seeall) + +require("fs") +require("procps") +require("getopts") +require("format") +require("daemoncontrol") +require("validator") + +local configfile = "/etc/opennhrp/opennhrp.conf" +local processname = "opennhrp" +local baseurl = "/etc/opennhrp/" + +local function get_version() + local cmd_output_result, cmd_output_error + local cmd = "/sbin/apk_version -vs " .. processname .." 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 opennhrpctl_show() + local cmd_output_result={} + local cmd_output_result_table={} + local cmd_output_error, opennhrpstatus + local cmd = "/usr/sbin/opennhrpctl show 2>/dev/null" + local f = io.popen( cmd ) + for line in f:lines() do + if string.find(line, "^Status:") then + opennhrpstatus=line + else + table.insert(cmd_output_result, line) + end + end + f:close() + local cnt = 0 + for k,v in pairs(cmd_output_result) do + if string.find(v,"^Interface") then + cnt = cnt + 1 + cmd_output_result_table[cnt] = {} + end + if ( cnt > 0 ) and (v ~= "") then + local k = string.match(v,"^(.-):%s?.*") + cmd_output_result_table[cnt][k]=string.match(v,"^.-:%s?(.*)") + end + end + + return cmd_output_result_table,opennhrpstatus,cmd_output_error +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=procps.pidof(processname), + }) + local opennhrpctl_show, opennhrpctl_status = opennhrpctl_show() + status.stats = cfe({ name="stats", + label="Programstatus reports", + value=opennhrpctl_status, + }) + status.show = cfe({ name="show", + label="Peers", + option=opennhrpctl_show, + }) + + return status +end + + diff --git a/opennhrp-status-html.lsp b/opennhrp-status-html.lsp new file mode 100644 index 0000000..6137246 --- /dev/null +++ b/opennhrp-status-html.lsp @@ -0,0 +1,74 @@ +<? local form = ... ?> +<? +--[[ DEBUG INFORMATION +io.write("<H1>DEBUGGING</H1><span style='color:red'><H2>DEBUG INFO: CFE</H2>") +io.write(html.cfe_unpack(form)) +io.write("</span>") +--]] +?> + +<? +function informationform(myform,tags) + for k,v in pairs(tags) do + if (myform[v]) then + local val = myform[v] + io.write("\t<DT") + if (#val.errtxt > 0) then io.write(" class='error'") end + io.write(">" .. val.label .. "</DT>\n") + + io.write("\t\t<DD>" .. val.value .. "\n") + if (val.descr) and (#val.descr > 0) then io.write("\t\t<P CLASS='descr'>" .. string.gsub(val.descr, "\n", "<BR>") .. "</P>\n") end + if (#val.errtxt > 0) then io.write("\t\t<P CLASS='error'>" .. string.gsub(val.errtxt, "\n", "<BR>") .. "</P>\n") end + io.write("\t\t</DD>\n") + end + end +end +?> + +<H1>SYSTEM INFO</H1> +<DL> +<? +local myform = form.status +local tags = { "status", "version", } +informationform(myform,tags) +?> +</DL> + +<? ---[[ ?> +<H2>PROGRAM SPECIFIC OPTIONS/INFORMATION</H2> +<DL> +<? +--local myform = form.status +--local tags = { "stats", } +--informationform(myform,tags) + +local myform = form.status.show +io.write("\t<DT") +if (#myform.errtxt > 0) then io.write(" class='error'") end +io.write(">" .. myform.label .. "</DT>\n") +io.write("\t\t<DD>\n") +for k,v in pairs(myform.option or {}) do + io.write("\t\t\t<TABLE STYLE='margin-bottom:10px;'>") + io.write("\n\t\t\t<TR><TD STYLE='font-weight:bold;'><IMG SRC='/static/tango/16x16/devices/computer.png' width='16' height='16' alt> Protocol-Address</TD><TD STYLE='font-weight:bold;'>" .. v["Protocol-Address"] .. "</TD></TR>\n") + for k1,v1 in pairs(v) do + if (k1 ~= "Protocol-Address") then + io.write("<TR><TD WIDTH='100px' STYLE='font-weight:bold;padding-left:30px;'>"..k1.."</TD><TD>"..v1.."</TD></TR>\n") + end + end + io.write("\t\t\t</TABLE>") +end +io.write("\t\t</DD>\n") +?> +</DL> + +<? --]] ?> + + +<? +--[[ DEBUG INFORMATION +io.write("<H1>DEBUGGING</H1><span style='color:red'><H2>DEBUG INFO: CFE</H2>") +io.write(html.cfe_unpack(form)) +io.write("</span>") +--]] +?> + diff --git a/opennhrp.menu b/opennhrp.menu new file mode 100644 index 0000000..cb5d25d --- /dev/null +++ b/opennhrp.menu @@ -0,0 +1,3 @@ +#CAT GROUP/DESC TAB ACTION +Networking 45NHRP Status status + |