rfkill: fix mixed-up soft/hard kill states

This commit is contained in:
Dan Williams
2009-06-17 07:24:28 -04:00
parent 904e7f3908
commit b71b1e66c8
2 changed files with 9 additions and 9 deletions

View File

@@ -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);

View File

@@ -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;