openvpn: Pass in additional arguments
authorDaniel Wagner <daniel.wagner@bmw-carit.de>
Fri, 17 Dec 2010 14:52:01 +0000 (15:52 +0100)
committerSamuel Ortiz <sameo@linux.intel.com>
Tue, 21 Dec 2010 00:31:02 +0000 (01:31 +0100)
Pass into the OpenVPN plugin:
     - protocol
     - port
     - auth_user_pass
     - tls-remote
     - cipher
     - auth
     - comp-lzo

plugins/openvpn.c

index 0da6c74..15169bd 100644 (file)
@@ -130,6 +130,8 @@ 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 *proto, *port, *auth_user_pass;
+       const char *tls_remote, *cipher, *auth, *comp_lzo;
        int err, fd;
 
        vpnhost = connman_provider_get_string(provider, "Host");
@@ -142,10 +144,43 @@ static int ov_connect(struct connman_provider *provider,
        certfile = connman_provider_get_string(provider, "OpenVPN.Cert");
        keyfile = connman_provider_get_string(provider, "OpenVPN.Key");
        mtu = connman_provider_get_string(provider, "VPN.MTU");
-
-       if (mtu)
+       proto = connman_provider_get_string(provider, "OpenVPN.Proto");
+       port = connman_provider_get_string(provider, "OpenVPN.Port");
+       auth_user_pass = connman_provider_get_string(provider,
+                                                       "OpenVPN.AuthUserPass");
+       tls_remote = connman_provider_get_string(provider, "OpenVPN.TLSRemote");
+       cipher = connman_provider_get_string(provider, "OpenVPN.Cipher");
+       auth = connman_provider_get_string(provider, "OpenVPN.Auth");
+       comp_lzo = connman_provider_get_string(provider, "OpenVPN.CompLZO");
+
+       if (mtu != NULL)
                connman_task_add_argument(task, "--mtu", (char *)mtu);
 
+       if (proto != NULL)
+               connman_task_add_argument(task, "--proto", (char *)proto);
+
+       if (port != NULL)
+               connman_task_add_argument(task, "--port", (char *)port);
+
+       if (auth_user_pass != NULL) {
+               connman_task_add_argument(task, "--auth-user-pass",
+                                               (char *)auth_user_pass);
+       }
+
+       if (tls_remote != NULL) {
+               connman_task_add_argument(task, "--tls-remote",
+                                               (char *)tls_remote);
+       }
+
+       if (cipher != NULL)
+               connman_task_add_argument(task, "--cipher", (char *)cipher);
+
+       if (auth != NULL)
+               connman_task_add_argument(task, "--auth", (char *)auth);
+
+       if (comp_lzo)
+               connman_task_add_argument(task, "--comp-lzo", (char *)comp_lzo);
+
        connman_task_add_argument(task, "--syslog", NULL);
 
        connman_task_add_argument(task, "--script-security", "2");