1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
-- the squid controller
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)
local list_redir = function (self)
self.conf.action = "general"
self.conf.type = "redir"
error (self.conf)
end
local pvt = {}
mvc= {}
mvc.on_load = function( self, parent )
-- If they try to run a bogus action, send them to read
if ( rawget(self.worker, self.conf.action) == nil ) then
list_redir(self)
end
pvt.parent_on_exec = parent.worker.mvc.post_exec
end
mvc.pre_exec = function( self )
-- pvt.parent_on_exec ()
end
mvc.post_exec = function( self )
return pvt.parent_on_exec()
end
general = function( self )
local option = { script = ENV["SCRIPT_NAME"],
prefix = self.conf.prefix,
controller = self.conf.controller,
action = self.conf.action,
extra = ""
}
local service = { message="", status="", config="" }
if self.clientdata.srvcmd then
srvcmd = self.clientdata.srvcmd
if srvcmd == "start" or srvcmd == "stop" or srvcmd == "restart" then
self.model.service_control( srvcmd )
end
end
if self.clientdata.cmd then
if self.clientdata.cmd == "save" then
local conf = self.clientdata
local config = { filterip = conf.filterip, filterport = conf.filterport,
proxyip = conf.proxyip, proxyport = conf.proxyport,
accessdeniedaddress = conf.accessdeniedaddress,
naughtynesslimit = conf.naughtynesslimit
}
self.model.update_general_config( config )
end
end
service.status = self.model.get_status()
service.config, service.cfgerr = self.model.get_general_config()
return ( cfe ({ option = option, service = service }) )
end
|