2008-01-17 Dan Williams <dcbw@redhat.com>

* src/nm-device-802-3-ethernet.c
		- (nm_device_802_3_ethernet_carrier_on,
		   nm_device_802_3_ethernet_carrier_off): ignore any spurious netlink
			carrier events that might come in for devices that don't support
			carrier detect



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3245 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
Dan Williams
2008-01-18 03:01:44 +00:00
parent efd3d2adca
commit 4fd5e838bd
2 changed files with 24 additions and 2 deletions

View File

@@ -1,3 +1,11 @@
2008-01-17 Dan Williams <dcbw@redhat.com>
* src/nm-device-802-3-ethernet.c
- (nm_device_802_3_ethernet_carrier_on,
nm_device_802_3_ethernet_carrier_off): ignore any spurious netlink
carrier events that might come in for devices that don't support
carrier detect
2008-01-17 Dan Williams <dcbw@redhat.com> 2008-01-17 Dan Williams <dcbw@redhat.com>
* src/nm-device-interface.c * src/nm-device-interface.c

View File

@@ -84,10 +84,17 @@ nm_device_802_3_ethernet_carrier_on (NMNetlinkMonitor *monitor,
gpointer user_data) gpointer user_data)
{ {
NMDevice *dev = NM_DEVICE (user_data); NMDevice *dev = NM_DEVICE (user_data);
guint32 caps;
/* Make sure signal is for us */ /* Make sure signal is for us */
if (nm_netlink_iface_to_index (nm_device_get_iface (dev)) == idx) if (nm_netlink_iface_to_index (nm_device_get_iface (dev)) == idx) {
/* Ignore spurious netlink messages */
caps = nm_device_get_capabilities (dev);
if (!(caps & NM_DEVICE_CAP_CARRIER_DETECT))
return;
nm_device_set_active_link (dev, TRUE); nm_device_set_active_link (dev, TRUE);
}
} }
static void static void
@@ -96,10 +103,17 @@ nm_device_802_3_ethernet_carrier_off (NMNetlinkMonitor *monitor,
gpointer user_data) gpointer user_data)
{ {
NMDevice *dev = NM_DEVICE (user_data); NMDevice *dev = NM_DEVICE (user_data);
guint32 caps;
/* Make sure signal is for us */ /* Make sure signal is for us */
if (nm_netlink_iface_to_index (nm_device_get_iface (dev)) == idx) if (nm_netlink_iface_to_index (nm_device_get_iface (dev)) == idx) {
/* Ignore spurious netlink messages */
caps = nm_device_get_capabilities (dev);
if (!(caps & NM_DEVICE_CAP_CARRIER_DETECT))
return;
nm_device_set_active_link (dev, FALSE); nm_device_set_active_link (dev, FALSE);
}
} }
static GObject* static GObject*