rfkill: fix mixed-up soft/hard kill states
This commit is contained in:
@@ -2379,28 +2379,28 @@ void
|
|||||||
nm_manager_start (NMManager *self)
|
nm_manager_start (NMManager *self)
|
||||||
{
|
{
|
||||||
NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self);
|
NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self);
|
||||||
gboolean enabled;
|
gboolean we = FALSE;
|
||||||
|
|
||||||
switch (nm_udev_manager_get_rfkill_state (priv->udev_mgr)) {
|
switch (nm_udev_manager_get_rfkill_state (priv->udev_mgr)) {
|
||||||
case RFKILL_UNBLOCKED:
|
case RFKILL_UNBLOCKED:
|
||||||
priv->wireless_enabled = TRUE;
|
we = TRUE;
|
||||||
priv->wireless_hw_enabled = TRUE;
|
priv->wireless_hw_enabled = TRUE;
|
||||||
break;
|
break;
|
||||||
case RFKILL_SOFT_BLOCKED:
|
case RFKILL_SOFT_BLOCKED:
|
||||||
priv->wireless_enabled = FALSE;
|
we = FALSE;
|
||||||
priv->wireless_hw_enabled = TRUE;
|
priv->wireless_hw_enabled = TRUE;
|
||||||
break;
|
break;
|
||||||
case RFKILL_HARD_BLOCKED:
|
case RFKILL_HARD_BLOCKED:
|
||||||
priv->wireless_enabled = FALSE;
|
we = FALSE;
|
||||||
priv->wireless_hw_enabled = FALSE;
|
priv->wireless_hw_enabled = FALSE;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
enabled = (priv->wireless_enabled && priv->wireless_hw_enabled);
|
nm_info ("Wireless now %s by radio killswitch",
|
||||||
nm_info ("Wireless now %s by radio killswitch", enabled ? "enabled" : "disabled");
|
(priv->wireless_hw_enabled && we) ? "enabled" : "disabled");
|
||||||
manager_set_wireless_enabled (self, enabled);
|
manager_set_wireless_enabled (self, we);
|
||||||
|
|
||||||
system_unmanaged_devices_changed_cb (priv->sys_settings, NULL, self);
|
system_unmanaged_devices_changed_cb (priv->sys_settings, NULL, self);
|
||||||
system_hostname_changed_cb (priv->sys_settings, NULL, self);
|
system_hostname_changed_cb (priv->sys_settings, NULL, self);
|
||||||
|
@@ -129,11 +129,11 @@ sysfs_state_to_nm_state (gint sysfs_state)
|
|||||||
{
|
{
|
||||||
switch (sysfs_state) {
|
switch (sysfs_state) {
|
||||||
case 0:
|
case 0:
|
||||||
return RFKILL_HARD_BLOCKED;
|
return RFKILL_SOFT_BLOCKED;
|
||||||
case 1:
|
case 1:
|
||||||
return RFKILL_UNBLOCKED;
|
return RFKILL_UNBLOCKED;
|
||||||
case 2:
|
case 2:
|
||||||
return RFKILL_SOFT_BLOCKED;
|
return RFKILL_HARD_BLOCKED;
|
||||||
default:
|
default:
|
||||||
g_warning ("%s: Unhandled rfkill state %d", __func__, sysfs_state);
|
g_warning ("%s: Unhandled rfkill state %d", __func__, sysfs_state);
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user