summaryrefslogtreecommitdiff
path: root/plugins/openvpn.c
diff options
context:
space:
mode:
authorPatrik Flykt <patrik.flykt@linux.intel.com>2011-10-31 15:31:42 +0200
committerSamuel Ortiz <sameo@linux.intel.com>2011-11-07 17:40:08 +0100
commit0656afcd5a2c0f99df2412bd29b5f11ec47f472a (patch)
treef412c2241c4032379751aa9e7e435908e0db0c28 /plugins/openvpn.c
parent94cc285149f732cb48919bde4b54aca7c090ecb5 (diff)
downloadconnman-0656afcd5a2c0f99df2412bd29b5f11ec47f472a.tar.gz
connman-0656afcd5a2c0f99df2412bd29b5f11ec47f472a.tar.bz2
connman-0656afcd5a2c0f99df2412bd29b5f11ec47f472a.zip
openvpn: Save support for openvpn
Openvpn saves all settings with prefix 'OpenVPN.'
Diffstat (limited to 'plugins/openvpn.c')
-rw-r--r--plugins/openvpn.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/plugins/openvpn.c b/plugins/openvpn.c
index 2a93771c..636864a9 100644
--- a/plugins/openvpn.c
+++ b/plugins/openvpn.c
@@ -175,6 +175,23 @@ static int ov_notify(DBusMessage *msg, struct connman_provider *provider)
return VPN_STATE_CONNECT;
}
+static int ov_save(struct connman_provider *provider, GKeyFile *keyfile)
+{
+ const char *option;
+ int i;
+
+ for (i = 0; i < (int)ARRAY_SIZE(ov_options); i++) {
+ if (strncmp(ov_options[i].cm_opt, "OpenVPN.", 8) == 0) {
+ option = connman_provider_get_string(provider,
+ ov_options[i].cm_opt);
+ g_key_file_set_string(keyfile,
+ connman_provider_get_save_group(provider),
+ ov_options[i].cm_opt, option);
+ }
+ }
+ return 0;
+}
+
static int task_append_config_data(struct connman_provider *provider,
struct connman_task *task)
{
@@ -267,6 +284,7 @@ static int ov_connect(struct connman_provider *provider,
static struct vpn_driver vpn_driver = {
.notify = ov_notify,
.connect = ov_connect,
+ .save = ov_save,
};
static int openvpn_init(void)