summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMika Havela <mika.havela@gmail.com>2007-11-22 13:50:22 +0000
committerMika Havela <mika.havela@gmail.com>2007-11-22 13:50:22 +0000
commitcaca5e32230dd0237865d70eae4d6a18d942e1ba (patch)
tree5bf54dc28e8b510de96c433a4e10ae8ac5f0e75e
parente407dc6d06978f3a42aa4376d7c16c2d1c72113d (diff)
downloadacf-openvpn-caca5e32230dd0237865d70eae4d6a18d942e1ba.tar.bz2
acf-openvpn-caca5e32230dd0237865d70eae4d6a18d942e1ba.tar.xz
OpenVPN serverconfig starting to take shape
git-svn-id: svn://svn.alpinelinux.org/acf/openvpn/trunk@354 ab2d0c66-481e-0410-8bed-d214d4d58bed
-rw-r--r--openvpn-controller.lua4
-rw-r--r--openvpn-model.lua24
-rw-r--r--openvpn-server_config-html.lsp31
3 files changed, 37 insertions, 22 deletions
diff --git a/openvpn-controller.lua b/openvpn-controller.lua
index 6500a9e..a70782e 100644
--- a/openvpn-controller.lua
+++ b/openvpn-controller.lua
@@ -123,8 +123,8 @@ end
server_config = function (self)
- local config = self.clientdata.config or ""
- return ( {serverconfig = self.model:get_serverconfig(config), url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller} )
+ local configname = self.clientdata.config or ""
+ return ( {serverconfig = self.model:get_serverconfig(configname), url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller} )
end
client_config = function (self)
diff --git a/openvpn-model.lua b/openvpn-model.lua
index b0607ab..f9e8fa2 100644
--- a/openvpn-model.lua
+++ b/openvpn-model.lua
@@ -54,14 +54,27 @@ local function config_content( f )
if not string.find ( l, "^[;#].*" ) then
local a,b = string.match ( l, "([^%s]*)%s(%S*)(.*)$" )
config[a]=b
+-- config[string.gsub(a, "-", "")]=b
end
end
+ config.name = f
+ -- FIXME Variablenames with '-' causes trouble!
+ config.log = "xXx"
+ config.maxclients = "xXx"
+ config.tls = "xXx"
+ config.crlverify = "xXx"
+ if not ( config["local"] ) then config["local"] = "0.0.0.0" end
+-- if not ( config["log"] ) and ( config[log-append] ) then
+-- a = "log"
+-- b = "plupp"
+-- config.log=config["log-append"]
+-- end
return config
end
local is_running = function( process, parameters )
- strsplit = require("split")
+ local strsplit = require("split")
local retval = ""
local pidofsx,error = io.popen("pidof " .. process ,r)
local pidofs = strsplit(" ", pidofsx:read("*a"))
@@ -160,9 +173,14 @@ function openvpn_version()
return openvpnversion
end
-function get_serverconfig ( f )
+function get_serverconfig ( self, f )
local serverconfig = {}
- serverconfig = cfe{ name = f }
+ config = config_content ( f )
+ local clientlist, connclients = clientlist ()
+ local isrunning = is_running ("openvpn", config.name)
+ -- FIXME: Get status for autostart_status = 'rc_status | grep this process'
+ local autostart_status = ""
+ serverconfig = cfe{ name = f, device = config.dev, log = config.log, verb = config.verb, maxclients = config["maxclients"], clients = connclients, status = isrunning, autostart = autostart_status, dh = config.dh, ca = config.ca, cert = config.cert, key = config.key, tls = config.tls , crl = config.crlverify, port = config.port, proto = config.proto, loca = config["local"] }
return serverconfig
end
diff --git a/openvpn-server_config-html.lsp b/openvpn-server_config-html.lsp
index 1e7467b..605f0aa 100644
--- a/openvpn-server_config-html.lsp
+++ b/openvpn-server_config-html.lsp
@@ -8,16 +8,16 @@
<dd>server</dd>
<dt>User device</dt>
-<dd>xxx</dd>
+<dd><?= view.serverconfig.device ?></dd>
<dt>Listens on</dt>
-<dd>xxx.xxx.xxx.xxx:xxxx (xxx)</dd>
+<dd><?= view.serverconfig.loca ?>:<?= view.serverconfig.port ?> (<?= view.serverconfig.proto ?>)</dd>
<dt>Logfile</dt>
-<dd><?= html.link{value = view.url .. "/logfile?name=xxx" , label="xxx.log" } ?> (Verbosity level: x)</dd>
+<dd><?= html.link{value = view.url .. "/logfile?name=" .. view.serverconfig.log , label=view.serverconfig.log } ?> (Verbosity level: <?= view.serverconfig.verb ?>)</dd>
<dt>Configfile</dt>
-<dd><?= html.link{value = view.url .. "/unknown_config?name=xxx" , label="xxx.conf" } ?></dd>
+<dd><?= html.link{value = view.url .. "/unknown_config?name=" .. view.serverconfig.name , label=view.serverconfig.name } ?></dd>
<h3>Connected clients status</h3>
@@ -25,42 +25,39 @@
<dd>YYYY-MM-DD HH:MM:SS (xx minutes ago)</dd>
<dt>Maximum clients</dt>
-<dd>xxx</dd>
+<dd><?= view.serverconfig.maxclients ?></dd>
<dt>Connected clients</dt>
-<dd><?= html.link{value = view.url .. "/status_info?name=xxx" , label="xxx" } ?></dd>
+<dd><?= html.link{value = view.url .. "/status_info?name=" .. view.serverconfig.name , label=view.serverconfig.clients } ?></dd>
<h2>Startup options</h2>
<dt>Process running</dt>
-<dd><input type="checkbox">xxx</input></dd>
-
-<dt>Init.d script exists</dt>
-<dd><input type="checkbox">xxx</input></dd>
+<dd><input type="checkbox" disabled <? if (view.serverconfig.status ~= "") then io.write("checked='yes'") end ?>><span style="color:green">(TODO: Make this checkbox to start/stop this process)</span></dd>
<dt>Autostarts at boot</dt>
-<dd><input type="checkbox">xxx</input></dd>
+<dd><input type="checkbox" disabled <? if (view.serverconfig.autostart ~= "") then io.write("checked='yes'") end ?>><span style="color:green">(TODO: Make this checkbox to 'rc_add'/'rc_delete')</span></dd>
<h2>Certificate files</h2>
<dt>DH</dt>
-<dd><?= html.link{value = view.url .. "/pem_info?name=xxx" , label="xxx.pem" } ?></dd>
+<dd><?= html.link{value = view.url .. "/pem_info?name=" .. view.serverconfig.dh , label=view.serverconfig.dh } ?></dd>
<dt>CA Certificate</dt>
-<dd><?= html.link{value = view.url .. "/pem_info?name=xxx" , label="xxx.pem" } ?></dd>
+<dd><?= html.link{value = view.url .. "/pem_info?name=" .. view.serverconfig.ca , label=view.serverconfig.ca } ?></dd>
<dt>Server Certificate</dt>
-<dd><?= html.link{value = view.url .. "/pem_info?name=xxx" , label="xxx.pem" } ?></dd>
+<dd><?= html.link{value = view.url .. "/pem_info?name=" .. view.serverconfig.cert , label=view.serverconfig.cert } ?></dd>
<dt>Server Private Key</dt>
-<dd><?= html.link{value = view.url .. "/pem_info?name=xxx" , label="xxx.pem" } ?></dd>
+<dd><?= html.link{value = view.url .. "/pem_info?name=" .. view.serverconfig.key , label=view.serverconfig.key } ?></dd>
<dt>TLS Authentication</dt>
-<dd><?= html.link{value = view.url .. "/pem_info?name=xxx" , label="xxx.pem" } ?></dd>
+<dd><?= html.link{value = view.url .. "/pem_info?name=" .. view.serverconfig.tls , label=view.serverconfig.tls } ?></dd>
<dt>CRL Verify File</dt>
-<dd><?= html.link{value = view.url .. "/pem_info?name=xxx" , label="xxx.pem" } ?> (server side)</dd>
+<dd><?= html.link{value = view.url .. "/pem_info?name=" .. view.serverconfig.crl , label=view.serverconfig.crl } ?></dd>
</body>