summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMika Havela <mika.havela@gmail.com>2007-12-06 07:41:10 +0000
committerMika Havela <mika.havela@gmail.com>2007-12-06 07:41:10 +0000
commit81c1c354f6c24e0307b31309551d78f5822450d2 (patch)
tree12eefd5445a29cd7ec3c674df90b1255905e639f
parent0475c30f9133a5835bc13dc784f03df0812bc483 (diff)
downloadacf-openntpd-81c1c354f6c24e0307b31309551d78f5822450d2.tar.bz2
acf-openntpd-81c1c354f6c24e0307b31309551d78f5822450d2.tar.xz
Accidently deleted wrong file (it's hopfylly back now)
git-svn-id: svn://svn.alpinelinux.org/acf/openntpd/trunk@415 ab2d0c66-481e-0410-8bed-d214d4d58bed
-rw-r--r--openntpd-controller.lua63
1 files changed, 63 insertions, 0 deletions
diff --git a/openntpd-controller.lua b/openntpd-controller.lua
new file mode 100644
index 0000000..1d85e5f
--- /dev/null
+++ b/openntpd-controller.lua
@@ -0,0 +1,63 @@
+-- Controller module
+module (..., package.seeall)
+
+-- Cause an http redirect to our "read" action
+-- We use the self.conf table because it already has prefix,controller,etc
+-- The redir code is defined in the application error handler (acf-controller)
+require("posix")
+local list_redir = function (self)
+ self.conf.action = "read"
+ 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
+
+
+settings = function (self)
+ local cmd = self.clientdata.cmd
+ local url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller
+ if ( cmd ~= nil ) then
+ local startstop = self.model:startstop_service( cmd )
+ posix.sleep(1) -- Wait for the process to start|stop
+ local statusinfo = self.model:get()
+ return ( {startstop = startstop, statusinfo = statusinfo, url = url } )
+ else
+ return ( {statusinfo = self.model:get(), startstop = "", url = url } )
+ end
+end
+
+logfile = function (self)
+ return ( {logfile = self.model:get_logfile(), url = url } )
+end
+
+read = function (self)
+ local cmd = self.clientdata.cmd
+ local url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller
+ return ( {statusinfo = self.model:get(), url = url } )
+end
+
+advanced = function (self)
+ local filecontent = self.clientdata.modifications or ""
+ local cmd = self.clientdata.cmd
+ local url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller
+
+ if ( filecontent ~= "") then
+ local me = ( {filecontent = self.model:update_filecontent(filecontent), url = url } )
+ return ( {startstop = "", statusinfo = self.model:get(), filecontent = self.model:get_filecontent(), url = url } )
+ else
+ if ( cmd ~= nil ) then
+ local startstop = self.model:startstop_service( cmd )
+ posix.sleep(1) -- Wait for the process to start|stop
+ return ( {startstop = startstop, statusinfo = self.model:get(), filecontent = self.model:get_filecontent(), url = url } )
+ else
+ return ( {startstop = "", statusinfo = self.model:get(), filecontent = self.model:get_filecontent(), url = url } )
+ end
+ end
+end
+