#!/bin/sh # # Copyright (C) 2007 Bastien Nocera # Copyright (C) 2007 David Zeuthen # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. DELL_WCTL=/usr/bin/dellWirelessCtl if [ -x "/usr/sbin/dellWirelessCtl" ]; then DELL_WCTL=/usr/sbin/dellWirelessCtl fi if [ "$HAL_PROP_KILLSWITCH_TYPE" = "bluetooth" ]; then if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "sonypic" ]; then hal-system-sonypic setbluetooth $value ret=$? if [ "$ret" != "0" ]; then echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 echo "hal-system-sonypic returned $ret" >&2 exit 1 fi exit 0 elif [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then if [ -x "$DELL_WCTL" ]; then # TODO: write our own binary that links with libsmbios? if [ "$value" = "true" ]; then $DELL_WCTL --bt 1 ret=$? else $DELL_WCTL --bt 0 ret=$? fi if [ "$ret" != "0" ]; then echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 echo "dellWirelessCtl returned $ret" >&2 exit 1 fi else echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2 exit 1 fi elif [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = thinkpad -a -w "$HAL_PROP_LINUX_SYSFS_PATH" ]; then if [ "$value" = "true" ]; then bit=1; else bit=0; fi echo $bit >$HAL_PROP_LINUX_SYSFS_PATH ret=$? if [ "$ret" != "0" ]; then echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 echo "cannot write $bit into $HAL_PROP_LINUX_SYSFS_PATH" >&2 exit 1 fi else echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 echo "Access type not supported" >&2 exit 1 fi elif [ "$HAL_PROP_KILLSWITCH_TYPE" = "wlan" ]; then if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then if [ -x "$DELL_WCTL" ]; then # As a side effect we disable the physical kill switch # TODO: write our own binary that links with libsmbios? if [ "$value" = "true" ]; then $DELL_WCTL --sw_wlan 0 --wlan 1 ret=$? else $DELL_WCTL --sw_wlan 0 --wlan 0 ret=$? fi if [ "$ret" != "0" ]; then echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 echo "dellWirelessCtl returned $ret" >&2 exit 1 fi else echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2 exit 1 fi else echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 echo "Access type not supported" >&2 exit 1 fi elif [ "$HAL_PROP_KILLSWITCH_TYPE" = "wwan" ]; then if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then if [ -x "$DELL_WCTL" ]; then # As a side effect we disable the physical kill switch # TODO: write our own binary that links with libsmbios? if [ "$value" = "true" ]; then $DELL_WCTL --sw_wwan 0 --wwan 1 ret=$? else $DELL_WCTL --sw_wwan 0 --wwan 0 ret=$? fi if [ "$ret" != "0" ]; then echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 echo "dellWirelessCtl returned $ret" >&2 exit 1 fi else echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2 exit 1 fi else echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 echo "Access type not supported" >&2 exit 1 fi else echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 echo "Killswitch type not supported" >&2 exit 1 fi