Hi everyone.

I'm building DBus support for my application. Since it needs to stream messages to many users (it should be started from root, but it has to communicate through DBus also with normal users), I needed to connect that on the System Bus. Here's how I implemented the stuff:

Qt Code:
  1. QDBusConnection dbus = QDBusConnection::systemBus();
  2.  
  3. dbus.registerObject("/Shaman", this);
  4.  
  5. qDebug() << "Shaman registered on the System Bus as" << dbus.baseService();
  6.  
  7. if(!dbus.registerService("org.archlinux.shaman"))
  8. qDebug() << "Failed to register alias Service on DBus";
To copy to clipboard, switch view to plain text mode 

The connection happens correctly and everything works, the only trouble is that I can't register a service. Calling that on the session Bus works as expected, but the system Bus simply refuses to register it.
Am I doing something wrong? Or, in case I can't register a service name, is there a way to call methods without knowing where the service resides, but knowing only the interface?

Thanks a lot