Arbitrary string to DBus path
mzqohf at 0pointer.de
Fri Nov 15 09:45:40 PST 2013
On Fri, 15.11.13 11:21, Ted Gould (ted at gould.cx) wrote:
> One problem we've had is taking arbitrary string (usually application
> names) and putting them into object paths on DBus. The characters
> allowed in the path is limited, which is fine, but we need some way to
> represent the string we're passed through that. libnih has a small
> function that does this by taking any character that isn't an ASCII
> character or digit and putting it's value as ASCII digits after an
> underscore. We've been using this in various places, and I think it'd
> be useful if there was an algorithm that was included in the DBus
Why? The spec is something you should follow to stay interoperable, but
I don't see how a spec on the precise mappings from some project
specific identifiers to bus paths would be needed for that.
This algorithm isn't even correct according to the spec. It needs to
escape numeric characters at the beginning of each label, too.
We use a similar algorithm in systemd too:
And I am pretty sure that exposing a similar call in a dbus library
implementation certainly would make sense but I really don't see why
there needs to be a spec about this...
(I mean, I am actually for removing stuff from the spec anyway, for
example, I don't see why we need to list annotations in there that have
no clear uses for general implementations of dbus).
Lennart Poettering, Red Hat
More information about the dbus