mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-05-08 14:48:10 +02:00
modem: fix WWAN hardware enable state tracking (rh #591622)
This commit is contained in:
parent
6221afc790
commit
2e92d84ef0
3 changed files with 16 additions and 4 deletions
|
|
@ -46,6 +46,7 @@ enum {
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
PPP_STATS,
|
PPP_STATS,
|
||||||
|
ENABLE_CHANGED,
|
||||||
LAST_SIGNAL
|
LAST_SIGNAL
|
||||||
};
|
};
|
||||||
static guint signals[LAST_SIGNAL] = { 0 };
|
static guint signals[LAST_SIGNAL] = { 0 };
|
||||||
|
|
@ -158,6 +159,8 @@ modem_enabled_cb (NMModem *modem, GParamSpec *pspec, gpointer user_data)
|
||||||
NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (self);
|
NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (self);
|
||||||
|
|
||||||
real_set_enabled (NM_DEVICE_INTERFACE (self), nm_modem_get_mm_enabled (priv->modem));
|
real_set_enabled (NM_DEVICE_INTERFACE (self), nm_modem_get_mm_enabled (priv->modem));
|
||||||
|
|
||||||
|
g_signal_emit (G_OBJECT (self), signals[ENABLE_CHANGED], 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
@ -453,6 +456,15 @@ nm_device_modem_class_init (NMDeviceModemClass *mclass)
|
||||||
G_TYPE_NONE, 2,
|
G_TYPE_NONE, 2,
|
||||||
G_TYPE_UINT, G_TYPE_UINT);
|
G_TYPE_UINT, G_TYPE_UINT);
|
||||||
|
|
||||||
|
signals[ENABLE_CHANGED] =
|
||||||
|
g_signal_new (NM_DEVICE_MODEM_ENABLE_CHANGED,
|
||||||
|
G_OBJECT_CLASS_TYPE (object_class),
|
||||||
|
G_SIGNAL_RUN_FIRST,
|
||||||
|
0,
|
||||||
|
NULL, NULL,
|
||||||
|
g_cclosure_marshal_VOID__VOID,
|
||||||
|
G_TYPE_NONE, 0);
|
||||||
|
|
||||||
dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (mclass),
|
dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (mclass),
|
||||||
nm_modem_get_serial_dbus_info ());
|
nm_modem_get_serial_dbus_info ());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,8 @@
|
||||||
|
|
||||||
#define NM_DEVICE_MODEM_MODEM "modem"
|
#define NM_DEVICE_MODEM_MODEM "modem"
|
||||||
|
|
||||||
|
#define NM_DEVICE_MODEM_ENABLE_CHANGED "enable-changed"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
NMDevice parent;
|
NMDevice parent;
|
||||||
} NMDeviceModem;
|
} NMDeviceModem;
|
||||||
|
|
|
||||||
|
|
@ -1459,9 +1459,7 @@ manager_ipw_rfkill_state_changed (NMDeviceWifi *device,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
manager_modem_enabled_changed (NMModem *device,
|
manager_modem_enabled_changed (NMModem *device, gpointer user_data)
|
||||||
GParamSpec *pspec,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
{
|
||||||
nm_manager_rfkill_update (NM_MANAGER (user_data), RFKILL_TYPE_WWAN);
|
nm_manager_rfkill_update (NM_MANAGER (user_data), RFKILL_TYPE_WWAN);
|
||||||
}
|
}
|
||||||
|
|
@ -1515,7 +1513,7 @@ add_device (NMManager *self, NMDevice *device)
|
||||||
nm_device_interface_set_enabled (NM_DEVICE_INTERFACE (device),
|
nm_device_interface_set_enabled (NM_DEVICE_INTERFACE (device),
|
||||||
priv->radio_states[RFKILL_TYPE_WLAN].enabled);
|
priv->radio_states[RFKILL_TYPE_WLAN].enabled);
|
||||||
} else if (NM_IS_DEVICE_MODEM (device)) {
|
} else if (NM_IS_DEVICE_MODEM (device)) {
|
||||||
g_signal_connect (device, "notify::" NM_MODEM_ENABLED,
|
g_signal_connect (device, NM_DEVICE_MODEM_ENABLE_CHANGED,
|
||||||
G_CALLBACK (manager_modem_enabled_changed),
|
G_CALLBACK (manager_modem_enabled_changed),
|
||||||
self);
|
self);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue