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
* src/vpn-daemons/nm-vpn-service.c
- (supplicant_child_setup): new function
- (supplicant_exec): make child process use a new process group id
* src/nm-device-802-11-wireless.c
- (nm_vpn_service_child_setup): new function
- (nm_vpn_service_stage1_daemon_exec): make child process use a new
process group id
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2121 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerAPList.c
- (nm_ap_list_copy_one_essid_by_address): fix bug due to previous
code cleanup in revision 1.56; the split of the !nm_ap_get_essid()
from the nm_ap_list_get_ap_by_address() call was incorrect and
broke hidden SSID matching. Found by Bill Moss.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2105 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
vpnc/:
* properties/Makefile.am: Include new files pcf-file.[ch] in build.
Add NetworkManager to CFLAGS and LDADD.
* properties/pcf-file.c: Implement.
* properties/pcf-file.h: Ditto.
* properties/nm-vpnc.c (import_from_file): Rewrite using new Cisco PCF
file parser instead of using GKeyFile (which has slightly different
semantics).
* src/Makefile.am: Add NetworkManager to CFLAGS and LDADD.
* src/nm-vpnc-service.c: Remove the leading NetworkManager directory
from NM includes since the NM pkg-config file already adds that.
* src/nm-vpnc-service-vpnc-helper.c: Ditto.
openvpn/:
* properties/Makefile.am: Add NetworkManager to CFLAGS and LDADD.
* src/Makefile.am: Ditto.
* properties/nm-openvpn.c: Remove the leading NetworkManager directory
from NM includes since the NM pkg-config file already adds that.
* src/nm-openvpn-service-openvpn-helper.c: Ditto.
* src/nm-openvpn-service.c: Ditto.
pptp/:
* src/nm-pppd-plugin.c: Remove the leading NetworkManager directory
from NM includes since the NM pkg-config file already adds that.
* properties/vpnui_impl.c: Ditto.
* properties/vpnui_impl.h: Ditto.
* src/nm-ppp-starter.c: Ditto.
* src/Makefile.am: Add NetworkManager to CFLAGS and LDADD.
* properties/Makefile.am: Add NetworkManager to CFLAGS and LDADD.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2093 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-dbus-nm.c
- (nm_dbus_nm_set_active_device): return an empty success message on
success, rather than falling through to the error case.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2088 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Reduce the number of times the Gnome applet wakes up, especially when
it's doing absolutely nothing and is hidden. Initial patch by
Chris Aillon.
* gnome/applet/applet-dbus.c
- (nma_dbus_filter): when NM isn't around, or when it goes away,
kill the redraw timeout. When NM starts up, start the redraw
timeout. Also, if we get kicked off the bus for some reason,
start the reconnection timeout if one's not already running.
- (nma_dbus_init): better handling of error conditions, don't leak
a half-initialized dbus connection
- (nma_dbus_connection_watcher): consolidate places we reinitialize
the applet's data, just call nm_dbus_init_helper()
- (nma_start_dbus_connection_watch): new function, starts a periodic
timeout that calls nma_dbus_connection_watcher()
- (nma_dbus_init_helper): if we get a successful connection, kill the
reconnection timeout, and don't start the reconnection timeout
unconditionally anymore
* gnome/applet/applet-dbus.h
- Expose nma_start_dbus_connection_watch()
* gnome/applet/applet.c
- (nma_update_state): no longer static, called from applet-dbus.c for
immediate UI updates on certain events
- (nma_set_running): new function; take over setting applet->running,
when not running (ie, NM is not active), don't activate the redraw
timeout because we're not showing the applet anyway. When we are
running (ie, NM is active), and only when we're running, start the
redraw timeout.
- (nma_destroy): kill the redraw timeout by setting 'not running', and
kill any reconnection timeout
- (nma_get_instance): move one-off dbus initialization code here since
nm_dbus_init_helper() gets called more than once, possibly by the
reconnection timeout function too. And, when we start up, if we
can't get a connection to the bus, start the reconnection timeout.
But don't start the redraw timeout yet, only do that when we get
NM's state and find out if it's running or not.
* gnome/applet/applet.h
- Add the reconnection GSource ID
- Add prototypes for nma_set_running() and the no-longer-static
nma_update_state()
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2084 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/dhcp-manager/nm-dhcp-manager.c
- (get_ip4_string, get_ip4_uint32s): have the caller pass
the dbus connection and the device object path rather than
constructing it inside both functions. Saves a bit of memory
and clarifies a failure path.
- (nm_dhcp_manager_get_ip4_config): grab the dbus connection
and allocate device path here rather than each of the two
functions above.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2065 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManager.c
- (nm_name_owner_changed_handler): handle NMI coming and going,
this somehow droppout in the refactor
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2064 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* Huge DBus refactor:
- Create a "DBus Manager" object which manages the connection and
sends signals on NameOwnerChanged and connection/disconnection events,
handles reconnection to the bus if NM gets kicked off, and abstracts
signal handling
- Remove DBusConnection members from places where they are no
longer needed due to the refactor, like the dbus-connection
property of the named manager, and from NMData
- Reformats a bunch of the code to gnome style
(8-space tabs, braces on same line as statement, 80-col width).
Consider it open season to reformat any bits to gnome style.
style that aren't already.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2061 4912f4e0-d625-0410-9fb7-b9a5a253dbdc