From: Marcel Holtmann Date: Thu, 26 Mar 2009 08:54:58 +0000 (-0700) Subject: Fix parsing of network dictionary X-Git-Tag: 2.0_alpha~3952 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b42be8dc03e89c626cd5f91222808a7e5a142ca4;p=framework%2Fconnectivity%2Fconnman.git Fix parsing of network dictionary --- diff --git a/src/device.c b/src/device.c index ad55006..ccfa592 100644 --- a/src/device.c +++ b/src/device.c @@ -503,11 +503,11 @@ static DBusMessage *join_network(DBusConnection *conn, if (network == NULL) return __connman_error_failed(msg); - while (dbus_message_iter_get_arg_type(&iter) == DBUS_TYPE_DICT_ENTRY) { + while (dbus_message_iter_get_arg_type(&array) == DBUS_TYPE_DICT_ENTRY) { DBusMessageIter entry, value; const char *key, *str; - dbus_message_iter_recurse(&iter, &entry); + dbus_message_iter_recurse(&array, &entry); dbus_message_iter_get_basic(&entry, &key); dbus_message_iter_next(&entry); @@ -516,16 +516,22 @@ static DBusMessage *join_network(DBusConnection *conn, switch (dbus_message_iter_get_arg_type(&value)) { case DBUS_TYPE_STRING: dbus_message_iter_get_basic(&value, &str); - connman_network_set_string(network, key, str); + if (g_str_equal(key, "WiFi.SSID") == TRUE) + connman_network_set_blob(network, key, + str, strlen(str)); + else + connman_network_set_string(network, key, str); break; } - dbus_message_iter_next(&iter); + dbus_message_iter_next(&array); } index = connman_device_get_index(device); connman_network_set_index(network, index); + connman_network_set_available(network, TRUE); + err = device->driver->join(device, network); connman_network_unref(network);