From: Marcel Holtmann Date: Wed, 7 Jan 2009 13:29:35 +0000 (+0100) Subject: Add support for network priorities X-Git-Tag: 0.7~11 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cc62d0b1c13ce889b115c607ec206e3f0173e045;p=platform%2Fupstream%2Fconnman.git Add support for network priorities --- diff --git a/src/network.c b/src/network.c index 3a531ad..f368ae8 100644 --- a/src/network.c +++ b/src/network.c @@ -36,6 +36,7 @@ struct connman_network { connman_bool_t available; connman_bool_t connected; connman_bool_t remember; + connman_uint8_t priority; connman_uint8_t strength; char *identifier; char *name; @@ -119,6 +120,10 @@ static DBusMessage *get_properties(DBusConnection *conn, connman_dbus_dict_append_variant(&dict, "Remember", DBUS_TYPE_BOOLEAN, &network->remember); + if (network->priority > 0) + connman_dbus_dict_append_variant(&dict, "Priority", + DBUS_TYPE_BYTE, &network->priority); + if (network->strength > 0) connman_dbus_dict_append_variant(&dict, "Strength", DBUS_TYPE_BYTE, &network->strength); @@ -185,6 +190,12 @@ static DBusMessage *set_property(DBusConnection *conn, g_free(network->wifi.passphrase); network->wifi.passphrase = g_strdup(passphrase); + } else if (g_str_equal(name, "Priority") == TRUE) { + connman_uint8_t priority; + + dbus_message_iter_get_basic(&value, &priority); + + network->priority = priority; } __connman_storage_save_network(network); @@ -981,6 +992,7 @@ static int network_load(struct connman_network *network) gchar *pathname, *data = NULL; gsize length; const char *name; + int val; DBG("network %p", network); @@ -1012,6 +1024,11 @@ static int network_load(struct connman_network *network) network->remember = g_key_file_get_boolean(keyfile, network->identifier, "Remember", NULL); + val = g_key_file_get_integer(keyfile, network->identifier, + "Priority", NULL); + if (val > 0) + network->priority = val; + g_free(network->wifi.security); network->wifi.security = g_key_file_get_string(keyfile, network->identifier, "WiFi.Security", NULL); @@ -1059,6 +1076,10 @@ update: g_key_file_set_boolean(keyfile, network->identifier, "Remember", network->remember); + if (network->priority > 0) + g_key_file_set_integer(keyfile, network->identifier, + "Priority", network->priority); + if (network->wifi.security != NULL) g_key_file_set_string(keyfile, network->identifier, "WiFi.Security", network->wifi.security);