Apply tizen 3.0 based product patchsets
[platform/core/connectivity/bluetooth-frwk.git] / bt-service / bt-service-obex-server.c
index af30019..6b0a7ff 100644 (file)
@@ -247,8 +247,9 @@ void _bt_obex_check_pending_transfer(const char *address)
 static char *__bt_get_remote_device_name(const char *bdaddress)
 {
        char *device_path = NULL;
-       char *name = NULL;
-       GVariant *value;
+       const gchar *name = NULL;
+       gchar *dev_name = NULL;
+       gsize name_len = 0;
        GVariant *result = NULL;
        GError *err = NULL;
        GDBusProxy *device_proxy;
@@ -271,42 +272,44 @@ static char *__bt_get_remote_device_name(const char *bdaddress)
        g_free(device_path);
        retv_if(device_proxy == NULL, NULL);
 
-       result = g_dbus_proxy_call_sync(device_proxy, "GetAll",
-                       g_variant_new("(s)", BT_DEVICE_INTERFACE),
-                       G_DBUS_CALL_FLAGS_NONE,
-                       DBUS_TIMEOUT, NULL,
-                       &err);
+       result = g_dbus_proxy_call_sync(device_proxy, "Get",
+                       g_variant_new("(ss)", BT_DEVICE_INTERFACE, "Alias"),
+                       G_DBUS_CALL_FLAGS_NONE, DBUS_TIMEOUT, NULL, &err);
        if (err) {
                BT_ERR("DBus Error : %s", err->message);
                g_clear_error(&err);
-               return NULL;
-       }
-       if (result == NULL) {
-               BT_ERR("g_dbus_proxy_call_sync function return NULL");
-               return NULL;
+       } else {
+               GVariant *value;
+               g_variant_get(result, "(v)", &value);
+               name = g_variant_get_string(value, &name_len);
+               INFO_SECURE("Alias Name [%s]", name);
+               if (name_len)
+                       dev_name = g_strdup(name);
+               g_variant_unref(value);
+               g_variant_unref(result);
        }
-       g_variant_get(result, "(@a{sv})", &value);
 
-       if (value) {
-               GVariant *temp_value = g_variant_lookup_value(value, "Alias",
-                       G_VARIANT_TYPE_STRING);
-               g_variant_get(temp_value, "s", &name);
-               if (temp_value)
-                       g_variant_unref(temp_value);
-
-               if (name != NULL)
-                       DBG_SECURE("Alias Name [%s]", name);
-               else {
-                       temp_value = g_variant_lookup_value(value, "Name", G_VARIANT_TYPE_STRING);
-                       g_variant_get(temp_value, "s", &name);
-                       if (temp_value)
-                               g_variant_unref(temp_value);
-                       DBG_SECURE("Name = %s", name);
+       if (name_len == 0) {
+               result = g_dbus_proxy_call_sync(device_proxy, "Get",
+                       g_variant_new("(ss)", BT_DEVICE_INTERFACE, "Name"),
+                       G_DBUS_CALL_FLAGS_NONE, -1, NULL, &err);
+               if (err) {
+                       ERR("DBus Error : %s", err->message);
+                       g_clear_error(&err);
+               } else {
+                       GVariant *value;
+                       g_variant_get(result, "(v)", &value);
+                       name = g_variant_get_string(value, &name_len);
+                       INFO_SECURE("Name = %s", name);
+                       if (name_len)
+                               dev_name = g_strdup(name);
+                       g_variant_unref(value);
+                       g_variant_unref(result);
                }
        }
-       g_variant_unref(result);
+
        g_object_unref(device_proxy);
-       return name;
+       return dev_name;
 }
 
 static void __bt_get_remote_device_name_authinfo(const char *bdaddress,
@@ -416,7 +419,7 @@ static GDBusProxy *__bt_get_transfer_proxy(const char *transfer_path)
                                        BT_OBEX_TRANSFER_INTERFACE,
                                        NULL, &err);
 
-       if (err) {
+       if (proxy == NULL && err) {
                BT_ERR("Error : %s", err->message);
                g_clear_error(&err);
                return NULL;
@@ -438,7 +441,7 @@ static GDBusProxy *__bt_get_transfer_properties_proxy(const char *transfer_path)
                                        transfer_path,
                                        BT_PROPERTIES_INTERFACE,
                                        NULL, &err);
-       if (err) {
+       if (proxy == NULL && err) {
                BT_ERR("Error : %s", err->message);
                g_clear_error(&err);
                return NULL;