diff options
author | Dan Williams <dcbw@redhat.com> | 2006-11-25 07:09:11 +0000 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2006-11-25 07:09:11 +0000 |
commit | 81c31e820a19a33918fb6a6834daecc87bd804aa (patch) | |
tree | 24d648016d02cb03339657edc2fe9040a54c5461 /src/nm-dbus-manager.h | |
parent | 2c8b331607edb47bdc079373515a80277624c2ff (diff) | |
download | NetworkManager-81c31e820a19a33918fb6a6834daecc87bd804aa.tar.gz |
2006-11-25 Dan Williams <dcbw@redhat.com>
Rework DBus manager signal handling to be more flexible. Previously,
only one signal handler could be registered for a particular interface.
The DBus manager now reference counts DBus bus matches and allows multiple
clients to register signal handlers for the same interface and sender.
* src/NetworkManager.c
- (main): track NMI signal handler ID and remove it when we quit
* src/NetworkManagerMain.h
- Keep track of NMI signal handler ID
* src/nm-dbus-manager.c
src/nm-dbus-manager.h
- rework signal handling; each signal handler references one signal
match, but a signal match may be referenced by one or more
signal handlers. Matches are refcounted and are destroyed when the
last signal handler that references the match is removed. This is
necessary because two signal handlers may end up requiring the same
dbus bus match, so the match must live until the last signal handler
is destroyed (for example, with the wpa_supplicant network interface
dbus interface).
* src/dhcp-manager/nm-dhcp-manager.c
- (nm_dhcp_manager_new): track DHCP signal handler id
- (nm_dhcp_manager_dispose): remove DHCP signal handler
* src/vpn-manager/nm-vpn-service.c
- (nm_vpn_service_add_watch): track VPN service signal handler id
- (nm_vpn_service_remove_watch): remove VPN service signal handler
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2124 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Diffstat (limited to 'src/nm-dbus-manager.h')
-rw-r--r-- | src/nm-dbus-manager.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/nm-dbus-manager.h b/src/nm-dbus-manager.h index a987c36e01..6e940b5a65 100644 --- a/src/nm-dbus-manager.h +++ b/src/nm-dbus-manager.h @@ -80,14 +80,14 @@ void nm_dbus_manager_register_method_list (NMDBusManager *self, gboolean nm_dbus_manager_name_has_owner (NMDBusManager *self, const char *name); -void nm_dbus_manager_register_signal_handler (NMDBusManager *self, +guint32 nm_dbus_manager_register_signal_handler (NMDBusManager *self, const char *interface, const char *sender, NMDBusSignalHandlerFunc callback, gpointer user_data); void nm_dbus_manager_remove_signal_handler (NMDBusManager *self, - const char *interface); + guint32 id); DBusConnection * nm_dbus_manager_get_dbus_connection (NMDBusManager *self); |