X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Ftechnology.c;h=2edb48f28355b3613f8b62adacde84c5ef624ad6;hb=6636320dc4c4b3254631098b4e748f0e38090344;hp=c523182e84466efc3407a52040877cea8f3e1644;hpb=091347cc83aa28a2395630274b6f1334fcab4f88;p=framework%2Fconnectivity%2Fconnman.git diff --git a/src/technology.c b/src/technology.c index c523182..2edb48f 100644 --- a/src/technology.c +++ b/src/technology.c @@ -2,7 +2,7 @@ * * Connection Manager * - * Copyright (C) 2007-2010 Intel Corporation. All rights reserved. + * Copyright (C) 2007-2012 Intel Corporation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -292,6 +292,34 @@ static const char *get_name(enum connman_service_type type) return NULL; } +static void save_state(struct connman_technology *technology) +{ + GKeyFile *keyfile; + gchar *identifier; + + DBG("technology %p", technology); + + keyfile = __connman_storage_load_global(); + if (keyfile == NULL) + keyfile = g_key_file_new(); + + identifier = g_strdup_printf("%s", get_name(technology->type)); + if (identifier == NULL) + goto done; + + g_key_file_set_boolean(keyfile, identifier, "Enable", + technology->enable_persistent); + +done: + g_free(identifier); + + __connman_storage_save_global(keyfile); + + g_key_file_free(keyfile); + + return; +} + static void load_state(struct connman_technology *technology) { GKeyFile *keyfile; @@ -324,6 +352,8 @@ static void load_state(struct connman_technology *technology) technology->enable_persistent = TRUE; else technology->enable_persistent = FALSE; + + save_state(technology); g_clear_error(&error); } done: @@ -334,34 +364,6 @@ done: return; } -static void save_state(struct connman_technology *technology) -{ - GKeyFile *keyfile; - gchar *identifier; - - DBG("technology %p", technology); - - keyfile = __connman_storage_load_global(); - if (keyfile == NULL) - keyfile = g_key_file_new(); - - identifier = g_strdup_printf("%s", get_name(technology->type)); - if (identifier == NULL) - goto done; - - g_key_file_set_boolean(keyfile, identifier, "Enable", - technology->enable_persistent); - -done: - g_free(identifier); - - __connman_storage_save_global(keyfile); - - g_key_file_free(keyfile); - - return; -} - connman_bool_t __connman_technology_get_offlinemode(void) { return global_offlinemode; @@ -394,12 +396,12 @@ static connman_bool_t connman_technology_load_offlinemode() /* If there is a error, we enable offlinemode */ keyfile = __connman_storage_load_global(); if (keyfile == NULL) - return TRUE; + return FALSE; offlinemode = g_key_file_get_boolean(keyfile, "global", "OfflineMode", &error); if (error != NULL) { - offlinemode = TRUE; + offlinemode = FALSE; g_clear_error(&error); } @@ -829,7 +831,7 @@ void __connman_technology_scan_stopped(struct connman_device *device) if (__connman_device_get_service_type(other_device) != type) continue; - if (__connman_device_scanning(other_device)) + if (connman_device_get_scanning(other_device) == TRUE) count += 1; } @@ -856,16 +858,20 @@ static DBusMessage *scan(DBusConnection *conn, DBusMessage *msg, void *data) return NULL; } -static GDBusMethodTable technology_methods[] = { - { "GetProperties", "", "a{sv}", get_properties }, - { "SetProperty", "sv", "", set_property }, - { "Scan", "", "", scan, - G_DBUS_METHOD_FLAG_ASYNC }, +static const GDBusMethodTable technology_methods[] = { + { GDBUS_DEPRECATED_METHOD("GetProperties", + NULL, GDBUS_ARGS({ "properties", "a{sv}" }), + get_properties) }, + { GDBUS_METHOD("SetProperty", + GDBUS_ARGS({ "name", "s" }, { "value", "v" }), + NULL, set_property) }, + { GDBUS_ASYNC_METHOD("Scan", NULL, NULL, scan) }, { }, }; -static GDBusSignalTable technology_signals[] = { - { "PropertyChanged", "sv" }, +static const GDBusSignalTable technology_signals[] = { + { GDBUS_SIGNAL("PropertyChanged", + GDBUS_ARGS({ "name", "s" }, { "value", "v" })) }, { }, }; @@ -1095,7 +1101,7 @@ int __connman_technology_remove_device(struct connman_device *device) return -ENXIO; } - if (__connman_device_scanning(device)) + if (connman_device_get_scanning(device) == TRUE) __connman_technology_scan_stopped(device); technology->device_list = g_slist_remove(technology->device_list, @@ -1353,6 +1359,9 @@ int __connman_technology_init(void) global_offlinemode = connman_technology_load_offlinemode(); + /* This will create settings file if it is missing */ + connman_technology_save_offlinemode(); + return 0; }