HFP modem will be registered when Proxy Added callback gets called
or when Pair is True. This patch removes the support for dynamic modem
registration when a new connection is notified and there isn't a modem
associated with the Bluetooth remote device.

BlueZ behaviour has been changed and a NewConnection is not notified
before the service discovery finishes.
---
 plugins/hfp_hf_bluez5.c | 23 +++--------------------
 1 file changed, 3 insertions(+), 20 deletions(-)

diff --git a/plugins/hfp_hf_bluez5.c b/plugins/hfp_hf_bluez5.c
index ff4dbad..d2f3abb 100644
--- a/plugins/hfp_hf_bluez5.c
+++ b/plugins/hfp_hf_bluez5.c
@@ -270,10 +270,8 @@ static DBusMessage *profile_new_connection(DBusConnection 
*conn,
 {
        struct hfp *hfp;
        struct ofono_modem *modem;
-       DBusMessageIter iter;
-       GDBusProxy *proxy;
        DBusMessageIter entry;
-       const char *device, *alias, *address;
+       const char *device;
        int fd, err;
 
        DBG("Profile handler NewConnection");
@@ -286,21 +284,6 @@ static DBusMessage *profile_new_connection(DBusConnection 
*conn,
 
        dbus_message_iter_get_basic(&entry, &device);
 
-       proxy = g_hash_table_lookup(devices_proxies, device);
-       if (proxy == NULL)
-               return g_dbus_create_error(msg, BLUEZ_ERROR_INTERFACE
-                                       ".Rejected",
-                                       "Unknown Bluetooth device");
-
-       g_dbus_proxy_get_property(proxy, "Alias", &iter);
-
-       dbus_message_iter_get_basic(&iter, &alias);
-
-       if (g_dbus_proxy_get_property(proxy, "Address", &iter) == FALSE)
-               goto invalid;
-
-       dbus_message_iter_get_basic(&iter, &address);
-
        dbus_message_iter_next(&entry);
        if (dbus_message_iter_get_arg_type(&entry) != DBUS_TYPE_UNIX_FD)
                goto invalid;
@@ -309,12 +292,12 @@ static DBusMessage *profile_new_connection(DBusConnection 
*conn,
        if (fd < 0)
                goto invalid;
 
-       modem = modem_register(device, address, alias);
+       modem = g_hash_table_lookup(modem_hash, device);
        if (modem == NULL) {
                close(fd);
                return g_dbus_create_error(msg, BLUEZ_ERROR_INTERFACE
                                        ".Rejected",
-                                       "Could not register HFP modem");
+                                       "Unknown Bluetooth device");
        }
 
        err = service_level_connection(modem, fd, HFP_VERSION_LATEST);
-- 
1.7.11.7

_______________________________________________
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono

Reply via email to