[Development] Add API method to QDBusServer allowing anonymous authentication

Roland Winklmeier roland.m.winklmeier at gmail.com
Mon Sep 30 20:02:47 CEST 2013


Hi there,

first of all I want to say hello. I was using Qt since quite a while
now, but never did any developing for Qt itself. For my next project I
identified some things I would need to add to the offical Qt libraries.
Since I don't want to role out my customised ones, but stick with the
official releases (especially on linux), I thought its time to say hello.

The first feature I would need, is a new API method in QtDBus.
Freedesktops DBus library has a method to allow anonymous access
(http://dbus.freedesktop.org/doc/api/html/group__DBusConnection.html#gade349ff04ed548993a8054250e317c12).
You can easily configure the dbus-daemon to allow this kind of
authentication in the dbus config file, but I would not advise to use
that (since it allows anonymous authentication for everything).
However, I need anonymous authentication for my next project, so I
decided to go for a peer2peer concept. Unfortunately, in the QtDBus API
there is no way to apply this. There is no configuration file for
QDBusServer and no method to enable it. I also cannot set my own
callback for new connections, since it needs to use QDBusConnectionPrivate.

My idea was to add a new API method to QDBusServer::allowAnonymous(bool
allow = false), which sets a new member variable in
QDBusConnectionPrivate. If a new connection is established, void
dbus_connection_set_allow_anonymous could be applied accordingly.

I have now 2 questions:
- First of all, is this something, that has a chance to get into the
official repository?
- If yes, how should I proceed. Start developing it locally and send it
to gerrit? I have of course read the Qt Contribution Guidelines, but the
question is, do I have to ask someone in advance if this is in line with
the roadmap and goals of the project?

Thanks in advance
Roland



More information about the Development mailing list