From: Pierre-Yves Paulus <py@idlum.be>
To: BlueZ development <bluez-devel@lists.sourceforge.net>
Subject: Re: [Bluez-devel] Cached friendly names never updated when changed
Date: Thu, 27 Mar 2008 14:11:29 +0100 [thread overview]
Message-ID: <47EB9D01.6090400@idlum.be> (raw)
In-Reply-To: <39C940F5-0157-43EB-9841-D5B7D35CCBF9@holtmann.org>
Hi Marcel,
Thanks for your fast answer.
>> It seems that once a friendly name has been cached to /var/lib/
>> bluetooth/*/names, RemoteNameUpdated signals contain this cached
>> name forever, and user is never informed of a name change unless
>> those "names" files are deleted.
>
> the names are never updated once retrieved. At least not via an
> inquiry run. If you connect to a remote device, it will update the
> name. Another option is Extended Inquiry support if you have the
> hardware for it.
>
> The reason behind this is that the remote name operation is too
> expensive if you don't have an ACL link between two devices. And a lot
> of times the name doesn't change so often or it is unimportant anyway.
It makes a lot of sense, at least for the python example I submitted,
which was only performing calls to "DiscoverDevices".
But I've encountered another situation, where bluez' caching behaviour
produces some nonsense. I have no simple test application to provide,
but it is quite simple to explain and understand.
I've an application which performs a continuous inquiry (eg when it gets
DiscoveryCompleted, it calls DiscoverDevices() and so on). In the
meantime, this application does also perform sdp extraction and rfcomm
connections to the detected devices. Here is a record of all
RemoteNameUpdated signals from a particular device:
I delete /var/lib/bluetooth/*/names, set my device's name to "Name 1",
and start my application
RemoteNameUpdated signal received: 006057BB4D92 - Name1
RemoteNameUpdated signal received: 006057BB4D92 - Name1
RemoteNameUpdated signal received: 006057BB4D92 - Name1
RemoteNameUpdated signal received: 006057BB4D92 - Name1
RemoteNameUpdated signal received: 006057BB4D92 - Name1
RemoteNameUpdated signal received: 006057BB4D92 - Name1
RemoteNameUpdated signal received: 006057BB4D92 - Name1
RemoteNameUpdated signal received: 006057BB4D92 - Name1
RemoteNameUpdated signal received: 006057BB4D92 - Name1
RemoteNameUpdated signal received: 006057BB4D92 - Name1
RemoteNameUpdated signal received: 006057BB4D92 - Name1
So far so good. At this point I set my device's name to "Name2": I start
to get mixed values (I understand that "Name1" are sent out from the
discovery, and thus use the cached value as you explainded above, and
"Name2" are from the other operations, which are actually getting the
current name, because they do connect to the device)
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name1
RemoteNameUpdated signal received: 006057BB4D92 - Name1
RemoteNameUpdated signal received: 006057BB4D92 - Name1
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name1
RemoteNameUpdated signal received: 006057BB4D92 - Name1
RemoteNameUpdated signal received: 006057BB4D92 - Name1
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name1
RemoteNameUpdated signal received: 006057BB4D92 - Name1
RemoteNameUpdated signal received: 006057BB4D92 - Name1
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name1
At this point I delete /var/lib/bluetooth/*/names. As cache is recreated
with the current value (Name2) everything looks good again
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name2
At this point, I change my device's name to "Name3". Things get mixed up
again.
RemoteNameUpdated signal received: 006057BB4D92 - Name3
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name3
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name3
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name2
RemoteNameUpdated signal received: 006057BB4D92 - Name3
RemoteNameUpdated signal received: 006057BB4D92 - Name2
So, shouldn't the cached value get updated when bluez gets a different
name later on?
Best Regards,
Pierre-Yves
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel
next prev parent reply other threads:[~2008-03-27 13:11 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-26 16:56 [Bluez-devel] Cached friendly names never updated when changed Pierre-Yves Paulus
2008-03-26 17:05 ` Marcel Holtmann
2008-03-27 13:11 ` Pierre-Yves Paulus [this message]
2008-03-27 15:06 ` Marcel Holtmann
2008-03-27 15:24 ` Pierre-Yves Paulus
2008-03-27 15:45 ` Marcel Holtmann
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=47EB9D01.6090400@idlum.be \
--to=py@idlum.be \
--cc=bluez-devel@lists.sourceforge.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox