Apply tizen 3.0 based product patchsets
[platform/core/connectivity/bluetooth-frwk.git] / bt-api / bt-common.c
index f70f5a4..b4e5ccb 100644 (file)
@@ -439,8 +439,6 @@ const char *_bt_convert_service_function_to_string(int function)
                {BT_UPDATE_LE_CONNECTION_MODE, "BT_UPDATE_LE_CONNECTION_MODE"},
                {BT_SET_PROFILE_TRUSTED, "BT_SET_PROFILE_TRUSTED"},
                {BT_GET_PROFILE_TRUSTED, "BT_GET_PROFILE_TRUSTED"},
-               {BT_SET_PROFILE_RESTRICTED, "BT_SET_PROFILE_RESTRICTED"},
-               {BT_GET_PROFILE_RESTRICTED, "BT_GET_PROFILE_RESTRICTED"},
                {BT_HID_CONNECT, "BT_HID_CONNECT"},
                {BT_HID_DISCONNECT, "BT_HID_DISCONNECT"},
                {BT_HID_DEVICE_ACTIVATE, "BT_HID_DEVICE_ACTIVATE"},
@@ -864,7 +862,7 @@ static GDBusProxy *__bt_gdbus_get_device_proxy(char *object_path)
                                                BT_DEVICE_INTERFACE,
                                                NULL, &err);
 
-       if (err) {
+       if (device_gproxy == NULL && err) {
                BT_ERR("Unable to create proxy: %s", err->message);
                g_clear_error(&err);
                return NULL;
@@ -1467,54 +1465,35 @@ int _bt_discover_service_uuids(char *address, char *remote_uuid)
                BT_ERR("DBus Error: [%s]", err->message);
                g_clear_error(&err);
        }
-       ret = g_dbus_proxy_call_sync(proxy, "GetAll",
-                       g_variant_new("(s)", BT_DEVICE_INTERFACE),
-                       G_DBUS_CALL_FLAGS_NONE,
-                       DBUS_TIMEOUT, NULL,
-                       &err);
+       ret = g_dbus_proxy_call_sync(proxy, "Get",
+                       g_variant_new("(ss)", BT_DEVICE_INTERFACE, "UUIDs"),
+                       G_DBUS_CALL_FLAGS_NONE, DBUS_TIMEOUT, NULL, &err);
        if (err) {
                result = BLUETOOTH_ERROR_INTERNAL;
                BT_ERR("DBus Error : %s", err->message);
                g_clear_error(&err);
                goto done;
-       }
-       if (ret == NULL) {
-               BT_ERR("g_dbus_proxy_call_sync function return NULL");
-               result = BLUETOOTH_ERROR_INTERNAL;
-               goto done;
+       } else {
+               g_variant_get(ret, "(v)", &value);
+               uuid_value = (char **)g_variant_get_strv(value, &size);
+               BT_DBG("Size items %d", size);
+               g_variant_unref(value);
+               g_variant_unref(ret);
        }
 
-       g_variant_get(ret, "(@a{sv})", &value);
-       g_variant_unref(ret);
-       if (value) {
-               GVariant *temp_value = g_variant_lookup_value(value, "UUIDs",
-                       G_VARIANT_TYPE_STRING_ARRAY);
-
-               if (temp_value) {
-                       size = g_variant_get_size(temp_value);
-                       if (size > 0) {
-                               uuid_value = (char **)g_variant_get_strv(temp_value, &size);
-                               BT_DBG("Size items %d", size);
-
-                               if (uuid_value) {
-                                       for (i = 0; uuid_value[i] != NULL; i++) {
-                                               BT_DBG("Remote uuids %s", uuid_value[i]);
-                                               if (strcasecmp(uuid_value[i], remote_uuid) == 0) {
-                                                       result = BLUETOOTH_ERROR_NONE;
-                                                       g_variant_unref(temp_value);
-                                                       goto done;
-                                               }
-                                       }
-                               }
+       if (uuid_value) {
+               for (i = 0; uuid_value[i] != NULL; i++) {
+                       BT_DBG("Remote uuids %s", uuid_value[i]);
+                       if (g_ascii_strcasecmp(uuid_value[i], remote_uuid) == 0) {
+                               result = BLUETOOTH_ERROR_NONE;
+                               goto done;
                        }
-                       g_variant_unref(temp_value);
                }
        }
+
 done:
        if (proxy)
                g_object_unref(proxy);
-       if (value)
-               g_variant_unref(value);
        if (uuid_value)
                g_free(uuid_value);
 
@@ -1551,38 +1530,25 @@ int _bt_get_cod_by_address(char *address, bluetooth_device_class_t *dev_class)
                g_clear_error(&err);
        }
 
-       result = g_dbus_proxy_call_sync(proxy, "GetAll",
-                       g_variant_new("(s)", BT_DEVICE_INTERFACE),
-                       G_DBUS_CALL_FLAGS_NONE,
-                       DBUS_TIMEOUT, NULL,
-                       &err);
+       result = g_dbus_proxy_call_sync(proxy, "Get",
+                       g_variant_new("(ss)", BT_DEVICE_INTERFACE, "Class"),
+                       G_DBUS_CALL_FLAGS_NONE, DBUS_TIMEOUT, NULL, &err);
        if (err) {
                ret = BLUETOOTH_ERROR_INTERNAL;
                BT_ERR("DBus Error : %s", err->message);
                g_clear_error(&err);
                goto done;
-       }
-       if (result == NULL) {
-               BT_ERR("g_dbus_proxy_call_sync function return NULL");
-               ret = BLUETOOTH_ERROR_INTERNAL;
-               goto done;
-       }
-       g_variant_get(result, "(@a{sv})", &value);
-       g_variant_unref(result);
-       if (value) {
-               GVariant *temp_value = g_variant_lookup_value(value, "Class",
-                       G_VARIANT_TYPE_UINT32);
-               class = g_variant_get_uint32(temp_value);
+       } else {
+               g_variant_get(result, "(v)", &value);
+               class = g_variant_get_uint32(value);
                _bt_divide_device_class(dev_class, class);
-               if (temp_value)
-                       g_variant_unref(temp_value);
+               g_variant_unref(value);
+               g_variant_unref(result);
        }
 
 done:
        if (proxy)
                g_object_unref(proxy);
-       if (value)
-               g_variant_unref(value);
 
        BT_DBG("-");
        return ret;
@@ -1943,7 +1909,7 @@ GVariant *_bt_get_managed_objects(void)
                        BT_MANAGER_INTERFACE,
                        NULL, &error);
 
-       if (error) {
+       if (manager_proxy == NULL && error) {
                BT_ERR("Unable to create proxy: %s", error->message);
                g_clear_error(&error);
                return NULL;