From 3e4b54a5d02c1fd96bde77049f745e263ff450a2 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Tue, 4 Jan 2011 18:23:29 -0600 Subject: [PATCH] policy: recheck auto-activatable connections when WiMAX NSPs change --- src/nm-policy.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/nm-policy.c b/src/nm-policy.c index 53557039e5..6ecc74ddbd 100644 --- a/src/nm-policy.c +++ b/src/nm-policy.c @@ -36,6 +36,7 @@ #include "nm-device-wifi.h" #include "nm-device-ethernet.h" #include "nm-device-modem.h" +#include "nm-device-wimax.h" #include "nm-dbus-manager.h" #include "nm-setting-ip4-config.h" #include "nm-setting-connection.h" @@ -932,6 +933,12 @@ wireless_networks_changed (NMDeviceWifi *device, NMAccessPoint *ap, gpointer use schedule_activate_check ((NMPolicy *) user_data, NM_DEVICE (device), 0); } +static void +nsps_changed (NMDeviceWimax *device, NMWimaxNsp *nsp, gpointer user_data) +{ + schedule_activate_check ((NMPolicy *) user_data, NM_DEVICE (device), 0); +} + typedef struct { gulong id; NMDevice *device; @@ -982,6 +989,16 @@ device_added (NMManager *manager, NMDevice *device, gpointer user_data) G_CALLBACK (wireless_networks_changed), policy); policy->dev_signal_ids = add_device_signal_id (policy->dev_signal_ids, id, device); + } else if (NM_IS_DEVICE_WIMAX (device)) { + id = g_signal_connect (device, "nsp-added", + G_CALLBACK (nsps_changed), + policy); + policy->dev_signal_ids = add_device_signal_id (policy->dev_signal_ids, id, device); + + id = g_signal_connect (device, "nsp-removed", + G_CALLBACK (nsps_changed), + policy); + policy->dev_signal_ids = add_device_signal_id (policy->dev_signal_ids, id, device); } }