All of lore.kernel.org
 help / color / mirror / Atom feed
* GATT service object required in D-Bus ObjectManager result
@ 2015-11-29  2:04 Ryan Kuester
  2015-11-30  7:16 ` Andrejs Hanins
  0 siblings, 1 reply; 8+ messages in thread
From: Ryan Kuester @ 2015-11-29  2:04 UTC (permalink / raw)
  To: linux-bluetooth

Hello everyone,

When registering a GATT service via the D-Bus API, bluez-5.36
seems to expect the objects returned by the service's
GetManagedObjects method to include the service object itself,
the root of the managed object tree. Indeed, the included
test/example-gatt-server behaves this way[1].

However, the D-Bus Specification seems to say an ObjectManager
should return the objects *under* the ObjectManager, i.e., only
the service's children---characteristics and descriptors. This
reading of the specification is in agreement with the
ObjectManager implementations in GDBus and Python's txdbus (I
didn't check other implementations).

bluez's disagreement with the standard causes pain when trying to
use the ObjectManager implementations in the libraries, because
they don't return the ObjectManager itself, the service object,
as bluez expects. E.g., in txdbus, it's impossible to implement
the ObjectManager interface in application code (to get the
non-standard behavior) without patching the library.

Does the expectation that the service object appear in the
GetManagedObjects result look like a disagreement with the D-Bus
standard to anyone else?

Thanks for all the good work on bluez,
-- Ryan


P.S. A possibly related issue is causing tools/gatt-service.c to
fail. It implements the ObjectManager interface on the root path
of the bus connection, rather on the service object. Perhaps this
indicates the service object *was* under a separate ObjectManager
in past versions, and this evolved into the current discrepancy
now that the service object *is* the ObjectManager.

1: text/example-gatt-server implements the ObjectManger
interface directly, making it easy to include the service object
in the GetManagedObjects result, even if returning the object is
nonstandard behavior, because the example is is written using
dbus-python, which doesn't provide help implementing the
ObjectManager interface.


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2016-01-11 10:05 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-29  2:04 GATT service object required in D-Bus ObjectManager result Ryan Kuester
2015-11-30  7:16 ` Andrejs Hanins
2015-11-30  7:44   ` Jonas Holmberg
2015-11-30  7:59     ` Johan Hedberg
2015-11-30  9:12       ` Luiz Augusto von Dentz
2016-01-10 22:22         ` Luiz Augusto von Dentz
2016-01-11  8:53           ` Jonas Holmberg
2016-01-11 10:05           ` Andrejs Hanins

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.