From: Daniel Wagner <daniel.wag...@bmw-carit.de> --- plugins/openvpn.c | 25 +++++++++++++++++++------ 1 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/plugins/openvpn.c b/plugins/openvpn.c index 0da6c74..ed06b5d 100644 --- a/plugins/openvpn.c +++ b/plugins/openvpn.c @@ -130,6 +130,7 @@ static int ov_connect(struct connman_provider *provider, struct connman_task *task, const char *if_name) { const char *vpnhost, *cafile, *mtu, *certfile, *keyfile; + const char *static_key, *ifconfig; int err, fd; vpnhost = connman_provider_get_string(provider, "Host"); @@ -141,6 +142,10 @@ static int ov_connect(struct connman_provider *provider, cafile = connman_provider_get_string(provider, "OpenVPN.CACert"); certfile = connman_provider_get_string(provider, "OpenVPN.Cert"); keyfile = connman_provider_get_string(provider, "OpenVPN.Key"); + + static_key = connman_provider_get_string(provider, "OpenVPN.StaticKey"); + ifconfig = connman_provider_get_string(provider, "OpenVPN.Ifconfig"); + mtu = connman_provider_get_string(provider, "VPN.MTU"); if (mtu) @@ -188,21 +193,29 @@ static int ov_connect(struct connman_provider *provider, */ connman_task_add_argument(task, "--ping-restart", "0"); - connman_task_add_argument(task, "--client", NULL); + if (cafile != NULL && certfile != NULL && keyfile != NULL) { + /* connection type: TLS */ + connman_task_add_argument(task, "--client", NULL); - if (cafile) { connman_task_add_argument(task, "--ca", (char *)cafile); - } - if (certfile) { connman_task_add_argument(task, "--cert", (char *)certfile); - } - if (keyfile) { connman_task_add_argument(task, "--key", (char *)keyfile); + } else if (static_key != NULL && ifconfig != NULL) { + /* connection type: static key */ + connman_task_add_argument(task, "--secret", + (char *)static_key); + + connman_task_add_argument(task, "--ifconfig", + (char *)ifconfig); + } else { + connman_error("Unknown connection type configuration " + "(either tls or static key needed)"); + return -EINVAL; } fd = fileno(stderr); -- 1.7.3.2 _______________________________________________ connman mailing list connman@connman.net http://lists.connman.net/listinfo/connman