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.
** TODO [#B] Use getaddrinfo(hints=AI_NUMERICHOST) instead of inet_pton()
32
31
** TODO [#B] use scandir(3) instead of readdir(3)
33
32
34
33
* usplash (Deprecated)
35
** TODO [#A] Make it work again
34
** TODO [#B] Make it work again
36
35
** TODO [#B] use scandir(3) instead of readdir(3)
37
36
38
37
* askpass-fifo
76
75
** TODO Use python-tlslite?
77
76
** TODO D-Bus AddClient() method on server object
78
77
** TODO Use org.freedesktop.DBus.Method.NoReply annotation on async methods. :2:
79
** TODO Support [[http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager][org.freedesktop.DBus.ObjectManager]] interface on server object :2: