provider: Define a save function for provider drivers
authorPatrik Flykt <patrik.flykt@linux.intel.com>
Mon, 31 Oct 2011 13:31:38 +0000 (15:31 +0200)
committerSamuel Ortiz <sameo@linux.intel.com>
Mon, 7 Nov 2011 16:40:08 +0000 (17:40 +0100)
Define a save function for connman provider driver
specific settings. No corresponding load function
is defined since all saved settings are already loaded
by connman_provider_load().

include/provider.h
src/provider.c

index d0e8c35..af121d0 100644 (file)
@@ -22,6 +22,7 @@
 #ifndef __CONNMAN_PROVIDER_H
 #define __CONNMAN_PROVIDER_H
 
+#include <glib.h>
 #include <connman/types.h>
 
 #ifdef __cplusplus
@@ -97,6 +98,7 @@ struct connman_provider_driver {
        int (*remove) (struct connman_provider *provider);
        int (*connect) (struct connman_provider *provider);
        int (*disconnect) (struct connman_provider *provider);
+       int (*save) (struct connman_provider *provider, GKeyFile *keyfile);
 };
 
 int connman_provider_driver_register(struct connman_provider_driver *driver);
index 487c7cd..321bfcc 100644 (file)
@@ -134,6 +134,9 @@ static int connman_provider_save(struct connman_provider *provider)
        g_key_file_set_string(keyfile, provider->identifier,
                        "VPN.Domain", provider->domain);
 
+       if (provider->driver != NULL && provider->driver->save != NULL)
+               provider->driver->save(provider, keyfile);
+
        __connman_storage_save_provider(keyfile, provider->identifier);
         g_key_file_free(keyfile);