Support the standard org.freedesktop.DBus.ObjectManager interface.
Now that the D-Bus standard has an interface to keep track of new and removed objects, use that instead of our own methods. This deprecates our D-Bus methods "GetAllClients" and "GetAllClientsWithProperties" and the signals "ClientAdded" and "ClientRemoved", all on the server interface "se.recompile.Mandos".
* DBUS-API: Removed references to deprecated methods and signals; insert reference to the org.freedesktop.DBus.ObjectManager interface. * mandos (DBusObjectWithProperties._get_all_interface_names): New. (dbus.OBJECT_MANAGER_IFACE): If not present, monkey patch. (DBusObjectWithObjectManager): New. (main/MandosDBusService): Inherit from DBusObjectWithObjectManager. (main/MandosDBusService.ClientRemoved): Annotate as deprecated. (main/MandosDBusService.GetAllClients): - '' - (main/MandosDBusService.GetAllClientsWithProperties): Annotate as deprecated. Also only return properties on client interface. (main/MandosDBusService.RemoveClient): Call client_removed_signal instead of ClientRemoved. (main/MandosDBusService.GetManagedObjects): New. (main/MandosDBusService.client_added_signal): New. (main/MandosDBusService.client_removed_signal): - '' - (main/cleanup): Call "client_removed_signal" instead of sending "ClientRemoved" signal directly. (main): Call "client_added_signal" instead of sending "ClientAdded" signal directly. * mandos-ctl: Use GetManagedObjects instead of GetAllClientsWithProperties. Also, show better error message in case of failure to connect to the D-Bus
* mandos-monitor (MandosClientPropertyCache.properties_changed): Bug fix; only update properties on client interface. (UserInterface.find_and_remove_client): Change to accept arguments from InterfacesRemoved signal. Also, bug fix: working error message when removing unknown client. (UserInterface.add_new_client): Change to accept arguments from InterfacesRemoved signal. Pass properties to MandosClientWidget constructor. (UserInterface.run): Connect find_and_remove_client method to InterfacesRemoved signal and the add_new_client method to the InterfacesAdded signal.