#!/bin/sh

### BEGIN INIT INFO
# Required-Start: $syslog messagebus
# Default-Start: 2 3 4 5
# Short-Description: Bluetooth services
# Description: Bluetooth services for service discovery, authentication, 
# Human Interface Devices, etc.
### END INIT INFO

# Source function library.
. /etc/rc.d/init.d/functions

UART_CONF="/etc/bluetooth/uart"

[ -e /etc/sysconfig/bluetooth ] && . /etc/sysconfig/bluetooth

start_uarts()
{
	[ -f $UART_CONF ] || return
	grep -v '^#' $UART_CONF | while read i; do
		/usr/sbin/hciattach $i
	done
}

stop_uarts()
{
	killproc hciattach > /dev/null 2>&1
}

start()
{
	echo -n $"Starting Bluetooth services:"
	daemon /usr/sbin/hcid -s
	RETVAL=$?
	[ $RETVAL = 0 ] && touch /var/lock/subsys/hcid
	[ "$HID2HCI_ENABLE" = "true" ] && hid2hci --tohci > /dev/null 2>&1 || :
	start_uarts
	rfcomm bind all
	touch /var/lock/subsys/bluetooth
	echo ""
	return $RETVAL
}

stop()
{
	echo -n "Stopping Bluetooth services:"
	stop_uarts
	rfcomm release all
	[ "$HID2HCI_UNDO" = "true" ] && hid2hci --tohid > /dev/null 2>&1 || :
	killproc hcid
	RETVAL=$?
	rm -f /var/lock/subsys/hcid
	rm -f /var/lock/subsys/bluetooth
	echo ""
	return $RETVAL
}

case "$1" in
  start)
	start
	;;
  stop)
	stop
	;;
  force-reload|restart|reload)
        stop
        start
        ;;
  try-restart|condrestart)
        [ -e /var/lock/subsys/bluetooth ] && (stop; start)
        ;;
  status)
        status hcid
	RETVAL=$?
        ;;
  *)
        echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
        exit 3
	;;
esac

exit $RETVAL
