On Fri, Sep 23 2011, Michael Albinus wrote: >> While I agree on point 1., the point 2. is totally irrelevant in such a >> case. There's no need to do such a thing, the name has never been >> requested with RequestName before. > > It's simply an error. We are speaking abut the generalized > `dbus-unregister-object', which is used for both signals and > methods. ReleaseName shall be called only in case a *method* has been > registered; I'll fix this. > >> I think that: >> - step 2 should be removed or another function should be created which >> does not send a ReleaseName > > Nope. See above. Ok, if you do this in one function, I agree with you then. >> - dbus_bus_remove_match() should be used to remove the watch from the >> bus, which would be a lot cleaner. > > Good point. Registering a signal shall also keep the match string in > dbus-registered-objects-table (it doesn't yet). Then we could use this > string to send RemoveMatch. > > I'll prepare a patch for this (hopefully in time before starting the > pretest). It sounds like a solution. What I don't like is that it's not really opaque, so somebody could mess with this, but well… I might be paranoid. :) -- Julien Danjou