summaryrefslogtreecommitdiff
path: root/plugins/vpn.c
diff options
context:
space:
mode:
authorPatrik Flykt <patrik.flykt@linux.intel.com>2011-10-31 15:31:40 +0200
committerSamuel Ortiz <sameo@linux.intel.com>2011-11-07 17:40:08 +0100
commit50152a805fc9b7124475404c438a2203f99c3e6d (patch)
treebf72da31feacb12a88309061e449a324891e29c0 /plugins/vpn.c
parent81c6e2fe35caf30089caf8d126d0badff30dfa8f (diff)
downloadconnman-50152a805fc9b7124475404c438a2203f99c3e6d.tar.gz
connman-50152a805fc9b7124475404c438a2203f99c3e6d.tar.bz2
connman-50152a805fc9b7124475404c438a2203f99c3e6d.zip
vpn: Extend vpn driver struct with save support
Add provider save function and register it in the vpn driver initialization.
Diffstat (limited to 'plugins/vpn.c')
-rw-r--r--plugins/vpn.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/plugins/vpn.c b/plugins/vpn.c
index 26e2b09d..79ec305f 100644
--- a/plugins/vpn.c
+++ b/plugins/vpn.c
@@ -375,6 +375,20 @@ static int vpn_remove(struct connman_provider *provider)
return 0;
}
+static int vpn_save (struct connman_provider *provider, GKeyFile *keyfile)
+{
+ struct vpn_driver_data *vpn_driver_data;
+ const char *name;
+
+ name = connman_provider_get_driver_name(provider);
+ vpn_driver_data = g_hash_table_lookup(driver_hash, name);
+ if (vpn_driver_data != NULL &&
+ vpn_driver_data->vpn_driver->save != NULL)
+ return vpn_driver_data->vpn_driver->save(provider, keyfile);
+
+ return 0;
+}
+
int vpn_register(const char *name, struct vpn_driver *vpn_driver,
const char *program)
{
@@ -394,6 +408,7 @@ int vpn_register(const char *name, struct vpn_driver *vpn_driver,
data->provider_driver.connect = vpn_connect;
data->provider_driver.probe = vpn_probe;
data->provider_driver.remove = vpn_remove;
+ data->provider_driver.save = vpn_save;
if (driver_hash == NULL) {
driver_hash = g_hash_table_new_full(g_str_hash,