summaryrefslogtreecommitdiffstats
path: root/opennhrp-model.lua
diff options
context:
space:
mode:
Diffstat (limited to 'opennhrp-model.lua')
-rw-r--r--opennhrp-model.lua51
1 files changed, 50 insertions, 1 deletions
diff --git a/opennhrp-model.lua b/opennhrp-model.lua
index ebff6a8..42034d9 100644
--- a/opennhrp-model.lua
+++ b/opennhrp-model.lua
@@ -11,6 +11,16 @@ local configfile = "/etc/opennhrp/opennhrp.conf"
local processname = "opennhrp"
local baseurl = "/etc/opennhrp/"
+local type_status = {
+ ['incomplete']="The protocol address is being resolved",
+ ['negative']="This protocol address is not available",
+ ['cached']="Protocol address was resolved successfully",
+ ['route']="this is a dynamic shortcut",
+ ['dynamic']="only in core branches, the entry is from a node that connected to us",
+ ['local']="local interface address",
+ ['static']="static mapping from configuration file (e.g. address of core)",
+ }
+
local function get_version()
local cmd_output_result, cmd_output_error
local cmd = "/sbin/apk_version -vs " .. processname .." 2>/dev/null"
@@ -25,6 +35,21 @@ local function get_version()
return cmd_output_result,cmd_output_error
end
+local function autostarts()
+ local cmd_output_result, cmd_output_error
+ 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,cmd_output_error
+
+end
+
local function opennhrpctl_show()
local cmd_output_result={}
local cmd_output_result_table={}
@@ -48,12 +73,21 @@ local function opennhrpctl_show()
if ( cnt > 0 ) and (v ~= "") then
local k = string.match(v,"^(.-):%s?.*")
cmd_output_result_table[cnt][k]=string.match(v,"^.-:%s?(.*)")
+ if (string.lower(k) == "type") then
+ local tooltip = string.match(v,"^.-:%s?(.*)")
+ cmd_output_result_table[cnt]["Tooltip"] = type_status[tooltip]
+ end
end
end
return cmd_output_result_table,opennhrpstatus,cmd_output_error
end
+
+
+
+
+
-- ################################################################################
-- PUBLIC FUNCTIONS
@@ -68,14 +102,29 @@ function getstatus()
label="Program status",
value=procps.pidof(processname),
})
+ local autostart_sequense, autostart_errtxt = autostarts()
+ status.autostart = cfe({ name="autostart",
+ label="Autostart sequence",
+ value=autostart_sequense,
+ errtxt=autostart_errtxt,
+ })
+
local opennhrpctl_show, opennhrpctl_status = opennhrpctl_show()
status.stats = cfe({ name="stats",
label="Programstatus reports",
value=opennhrpctl_status,
})
+
+ local peers_list = {}
+ for k,v in pairs(opennhrpctl_show) do
+ if (v.Interface) and not (peers_list[v.Interface]) then
+ peers_list[v.Interface] = {}
+ end
+ table.insert(peers_list[v.Interface], v)
+ end
status.show = cfe({ name="show",
label="Peers",
- option=opennhrpctl_show,
+ option=peers_list,
})
return status