summaryrefslogtreecommitdiff
path: root/src/storage.c
diff options
context:
space:
mode:
authorAlok Barsode <alok.barsode@linux.intel.com>2011-09-29 13:53:04 +0300
committerSamuel Ortiz <sameo@linux.intel.com>2011-11-24 12:33:11 +0100
commit17d0eee00f7a247d279c17cb036672d3c5a67d77 (patch)
treef34cc483e7f7a143c9dd5ce219edd07dbc14d5a8 /src/storage.c
parent358b68deea41bbbb4d6fc97123da7b3cf85a1c9a (diff)
downloadconnman-17d0eee00f7a247d279c17cb036672d3c5a67d77.tar.gz
connman-17d0eee00f7a247d279c17cb036672d3c5a67d77.tar.bz2
connman-17d0eee00f7a247d279c17cb036672d3c5a67d77.zip
storage: Add default values to settings file.
On a clean start (without default.profile) create the settings file with default values. Here is a list of default values: Offlinemode = off. Wifi = disabled. bluetooth = disabled. ethernet = disabled. 3G = disabled. WiMAX = disabled. The reason for offlinemode to be off here is that any changes to the technology will not be recorded if we start in offlinemode. Fixes BMC#24285
Diffstat (limited to 'src/storage.c')
-rw-r--r--src/storage.c83
1 files changed, 58 insertions, 25 deletions
diff --git a/src/storage.c b/src/storage.c
index 1d14e138..51404c86 100644
--- a/src/storage.c
+++ b/src/storage.c
@@ -351,73 +351,106 @@ void __connman_storage_migrate()
if(pathname == NULL)
return;
- /* If default.profile doesn't exists, no need to migrate. */
+ /* Copy global settings from default.profile to settings. */
+ keyfile = g_key_file_new();
+
+ /* If default.profile doesn't exists, create settings with defaults. */
keyfile_def = storage_load(pathname);
if (keyfile_def == NULL) {
- g_free(pathname);
- return;
- }
+ g_key_file_set_boolean(keyfile, "global",
+ "OfflineMode", FALSE);
- /* Copy global settings from default.profile to settings. */
- keyfile = g_key_file_new();
+ g_key_file_set_boolean(keyfile, "WiFi",
+ "Enable", FALSE);
+
+ g_key_file_set_boolean(keyfile, "Bluetooth",
+ "Enable", FALSE);
+
+ g_key_file_set_boolean(keyfile, "Wired",
+ "Enable", FALSE);
+
+ g_key_file_set_boolean(keyfile, "3G",
+ "Enable", FALSE);
+
+ g_key_file_set_boolean(keyfile, "WiMAX",
+ "Enable", FALSE);
+
+ goto done;
+ }
/* offline mode */
val = g_key_file_get_boolean(keyfile_def, "global",
"OfflineMode", &error);
- if (error != NULL)
+ if (error != NULL) {
g_clear_error(&error);
- else
- g_key_file_set_boolean(keyfile, "global",
+ val = FALSE;
+ }
+
+ g_key_file_set_boolean(keyfile, "global",
"OfflineMode", val);
/* wifi */
val = g_key_file_get_boolean(keyfile_def, "WiFi",
"Enable", &error);
- if (error != NULL)
+ if (error != NULL) {
g_clear_error(&error);
- else
- g_key_file_set_boolean(keyfile, "WiFi",
+ val = FALSE;
+ }
+
+ g_key_file_set_boolean(keyfile, "WiFi",
"Enable", val);
/* bluetooth */
val = g_key_file_get_boolean(keyfile_def, "Bluetooth",
"Enable", &error);
- if (error != NULL)
+ if (error != NULL) {
g_clear_error(&error);
- else
- g_key_file_set_boolean(keyfile, "Bluetooth",
+ val = FALSE;
+ }
+
+ g_key_file_set_boolean(keyfile, "Bluetooth",
"Enable", val);
/* wired */
val = g_key_file_get_boolean(keyfile_def, "Wired",
"Enable", &error);
- if (error != NULL)
+ if (error != NULL) {
g_clear_error(&error);
- else
- g_key_file_set_boolean(keyfile, "Wired",
+ val = FALSE;
+ }
+
+ g_key_file_set_boolean(keyfile, "Wired",
"Enable", val);
/* 3G */
val = g_key_file_get_boolean(keyfile_def, "3G",
"Enable", &error);
- if (error != NULL)
+ if (error != NULL) {
g_clear_error(&error);
- else
- g_key_file_set_boolean(keyfile, "3G",
+ val = FALSE;
+ }
+
+ g_key_file_set_boolean(keyfile, "3G",
"Enable", val);
/* WiMAX */
val = g_key_file_get_boolean(keyfile_def, "WiMAX",
"Enable", &error);
- if (error != NULL)
+ if (error != NULL) {
g_clear_error(&error);
- else
- g_key_file_set_boolean(keyfile, "WiMAX",
+ val = FALSE;
+ }
+
+ g_key_file_set_boolean(keyfile, "WiMAX",
"Enable", val);
+done:
__connman_storage_save_global(keyfile);
g_key_file_free(keyfile);
- g_key_file_free(keyfile_def);
+
+ if (keyfile_def)
+ g_key_file_free(keyfile_def);
+
g_free(pathname);
}