From 81c1c354f6c24e0307b31309551d78f5822450d2 Mon Sep 17 00:00:00 2001 From: Mika Havela Date: Thu, 6 Dec 2007 07:41:10 +0000 Subject: 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 --- openntpd-controller.lua | 63 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 openntpd-controller.lua (limited to 'openntpd-controller.lua') 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 + -- cgit v1.2.3