All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johan Hedberg <johan.hedberg@gmail.com>
To: ofono@ofono.org
Subject: Re: [PATCH] hfp_hf_bluez5: Fix re-registering a modem for a device
Date: Tue, 23 Apr 2013 19:15:36 +0300	[thread overview]
Message-ID: <20130423161536.GA27409@x220> (raw)
In-Reply-To: <AF9D10A5-D958-4E8A-9B41-1EA0A5C9BD92@holtmann.org>

[-- Attachment #1: Type: text/plain, Size: 2328 bytes --]

Hi Marcel,

On Tue, Apr 23, 2013, Marcel Holtmann wrote:
> >>> Even for outgoing pairing requests we may receive the UUIDs property
> >>> changed after the device is paired and try to register it twice.
> >>> 
> >>> The easiest way to reproduce this is when Extended Inquiry Response is
> >>> supported.
> >>> 
> >>> When the device is paired, we receive the "Paired" PropertyChanged,
> >>> inside modem_register_from_proxy(), g_dbus_proxy_get_property() gets
> >>> the UUIDs extracted from the EIR data.  Later, when the service
> >>> discovery is finished, the UUIDs property is re-sent and both may
> >>> contain the HFP AG UUID.
> >> 
> >> My sources indicated to me that BlueZ should perform the SDP query
> >> first, and then signal Paired.  Is this something we can not count
> >> on or is this an implementation issue inside BlueZ itself?
> > 
> > BlueZ has always done pairing first and only then SDP. This is because
> > there are security mode 3 devices out there that do not permit any kind
> > of connection before pairing has been completed (i.e. even if we wanted
> > to do SDP first we can't with them). That said, we do at least delay the
> > NewConnection() callback until SDP has been completed.
> 
> so when are we sending "Paired" property? We might have to delay that
> property update until SDP finished.

Right now it's directly bound to when the device is actually paired,
i.e. ignoring any other ongoing operations such as SDP.

> We have to make sure that we finished SDP after the pairing before
> updating any clients with property changes.

I don't completely understand the rationale of wanting to make BlueZ's
clients so fragile. You could in theory get new services way after
pairing if this is configurable on the remote side. You could also get
the result of calling Device1.Connect() instead of Device1.Pair() in
BlueZ.

On the other hand, we do delay the response to Device1.Pair() until SDP
is complete so delaying the Paired property would in a way be consistent
with that. I'll look into how simple this would be. We already track the
completion of SDP for each device internally with a svc_resolved boolean
so probably a new flag to indicate that "Paired" still needs to be
emitted should be all the extra context tracking we need.

Johan

  reply	other threads:[~2013-04-23 16:15 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-22 22:53 [PATCH] hfp_hf_bluez5: Fix re-registering a modem for a device Vinicius Costa Gomes
2013-04-23  9:06 ` Denis Kenzior
2013-04-23 15:23   ` Johan Hedberg
2013-04-23 15:34     ` Marcel Holtmann
2013-04-23 16:15       ` Johan Hedberg [this message]
2013-04-23 16:27         ` Marcel Holtmann
2013-04-23 17:28           ` Johan Hedberg
2013-04-23 18:39             ` Vinicius Costa Gomes
2013-04-25  8:51             ` Mikel Astiz
2013-04-25  9:37               ` Johan Hedberg
2013-04-25  8:27                 ` Denis Kenzior
2013-04-25 17:47                   ` Vinicius Costa Gomes
2013-04-25 22:48                     ` Denis Kenzior

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130423161536.GA27409@x220 \
    --to=johan.hedberg@gmail.com \
    --cc=ofono@ofono.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.