hfp_hf_bluez5: Fix registering modem on NewConnection

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.
This commit is contained in:
Claudio Takahasi 2013-01-31 16:01:53 -03:00 committed by Denis Kenzior
parent 852ea612c8
commit f044c6c1fa
1 changed files with 3 additions and 20 deletions

View File

@ -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);