diff options
author | Mika Havela <mika.havela@gmail.com> | 2007-11-22 13:50:22 +0000 |
---|---|---|
committer | Mika Havela <mika.havela@gmail.com> | 2007-11-22 13:50:22 +0000 |
commit | caca5e32230dd0237865d70eae4d6a18d942e1ba (patch) | |
tree | 5bf54dc28e8b510de96c433a4e10ae8ac5f0e75e | |
parent | e407dc6d06978f3a42aa4376d7c16c2d1c72113d (diff) | |
download | acf-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.lua | 4 | ||||
-rw-r--r-- | openvpn-model.lua | 24 | ||||
-rw-r--r-- | openvpn-server_config-html.lsp | 31 |
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> |