From caca5e32230dd0237865d70eae4d6a18d942e1ba Mon Sep 17 00:00:00 2001 From: Mika Havela Date: Thu, 22 Nov 2007 13:50:22 +0000 Subject: OpenVPN serverconfig starting to take shape git-svn-id: svn://svn.alpinelinux.org/acf/openvpn/trunk@354 ab2d0c66-481e-0410-8bed-d214d4d58bed --- openvpn-controller.lua | 4 ++-- openvpn-model.lua | 24 +++++++++++++++++++++--- 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 @@
server
User device
-
xxx
+
Listens on
-
xxx.xxx.xxx.xxx:xxxx (xxx)
+
: ()
Logfile
-
(Verbosity level: x)
+
(Verbosity level: )
Configfile
-
+

Connected clients status

@@ -25,42 +25,39 @@
YYYY-MM-DD HH:MM:SS (xx minutes ago)
Maximum clients
-
xxx
+
Connected clients
-
+

Startup options

Process running
-
xxx
- -
Init.d script exists
-
xxx
+
>(TODO: Make this checkbox to start/stop this process)
Autostarts at boot
-
xxx
+
>(TODO: Make this checkbox to 'rc_add'/'rc_delete')

Certificate files

DH
-
+
CA Certificate
-
+
Server Certificate
-
+
Server Private Key
-
+
TLS Authentication
-
+
CRL Verify File
-
(server side)
+
-- cgit v1.2.3