Package: bluez-utils
Version: 3.7-1
Severity: normal
Tags: patch

        Hi,

 gnome-vfs-obexftp needs hcid running with the -x flags; could you
 please set this by default and/or add HCID_OPTIONS= to permit users to
 set this?

 It seems this flag is undocumented.

 I'm attaching the modified /etc/init.d I'm using.

   Bye,

-- System Information:
Debian Release: 4.0
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.20-1-686
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)

Versions of packages bluez-utils depends on:
ii  dbus                        1.0.2-1      simple interprocess messaging syst
ii  libbluetooth2               3.7-1        Library to use the BlueZ Linux Blu
ii  libc6                       2.3.6.ds1-13 GNU C Library: Shared libraries
ii  libdbus-1-3                 1.0.2-1      simple interprocess messaging syst
ii  libusb-0.1-4                2:0.1.12-5   userspace USB programming library
ii  lsb-base                    3.1-23       Linux Standard Base 3.1 init scrip
ii  makedev                     2.3.1-83     creates device files in /dev
ii  module-init-tools           3.3-pre4-2   tools for managing Linux kernel mo
ii  modutils                    2.4.27.0-6   Linux module utilities
ii  udev                        0.105-2      /dev/ and hotplug management daemo

Versions of packages bluez-utils recommends:
ii  bluez-passkey-gnome           0.5-2      Bluetooth passkey (PIN) agent for 

-- no debconf information

-- 
Loïc Minier <[EMAIL PROTECTED]>
#! /bin/bash
### BEGIN INIT INFO
# Provides: bluetooth
# Required-Start:    $local_fs $syslog $remote_fs
# Required-Stop:     $local_fs $syslog $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start bluetooth daemons
### END INIT INFO
#
# bluez-utils    Bluetooth subsystem starting and stopping
#
# originally from bluez's scripts/bluetooth.init
#
# Edd Dumbill <[EMAIL PROTECTED]>
# LSB 3.0 compilance and enhancements  by Filippo Giunchedi <[EMAIL PROTECTED]>
#
# startup control over dund and pand can be changed by editing
# /etc/default/bluez-utils

PATH=/sbin:/bin:/usr/sbin:/usr/bin
DESC=bluetooth

HCID=/usr/sbin/hcid
HCIATTACH=/usr/sbin/hciattach
HCID_NAME=hcid

HID2HCI=/usr/sbin/hid2hci

UART_CONF=/etc/bluetooth/uart

RFCOMM=/usr/bin/rfcomm
RFCOMM_NAME=rfcomm
RFCOMM_CONF=/etc/bluetooth/rfcomm.conf

SDPD=/usr/sbin/sdpd
SDPD_NAME=sdpd

SDPTOOL=/usr/bin/sdptool

DUND_DAEMON=/usr/bin/dund
DUND_NAME=dund
PAND_DAEMON=/usr/bin/pand
PAND_NAME=pand
HIDD_DAEMON=/usr/bin/hidd
HIDD_NAME=hidd

DUND_ENABLED=0
PAND_ENABLED=0
HIDD_ENABLED=0
HCID_OPTIONS="-x"
DUND_OPTIONS=""
PAND_OPTIONS=""
HIDD_OPTIONS="--master --server"

test -f /etc/default/bluetooth && . /etc/default/bluetooth

. /lib/lsb/init-functions

# test for essential daemons
test -x $HCID || exit 0
test -x $HCIATTACH || exit 0
test -x $RFCOMM || exit 0
test -x $SDPD || exit 0

# disable nonessential daemons if not present
if test "$DUND_ENABLED" != "0"; then
        if ! test -f $DUND_DAEMON; then
                DUND_ENABLED=0
        fi
fi

if test "$PAND_ENABLED" != "0"; then
        if ! test -f $PAND_DAEMON; then
                PAND_ENABLED=0
        fi
fi

if test "$HIDD_ENABLED" != "0"; then
        if ! test -f $HIDD_DAEMON; then
                HIDD_ENABLED=0
        fi
fi

set -e

run_sdptool()
{
        test -x $SDPTOOL || return 1 

        if ! test -z "$SDPTOOL_OPTIONS" ; then
                oldifs="$IFS"
                IFS=";"
                for o in $SDPTOOL_OPTIONS ; do
                        #echo "execing $SDPTOOL $o"
                        IFS=" "
                        $SDPTOOL $o &>/dev/null
                done
                IFS="$oldifs"
        fi

}

enable_hci_input()
{
        #echo "Switching on Bluetooth input devices."
        $HID2HCI -q --tohci
}

disable_hci_input()
{
        #echo "Switching Bluetooth input devices back to HCI mode."
        $HID2HCI -q --tohid
}

start_pan()
{
        if test "$DUND_ENABLED" != "0"; then
                start-stop-daemon --start --quiet --exec $DUND_DAEMON -- 
$DUND_OPTIONS
                log_progress_msg "dund"
        fi
        if test "$PAND_ENABLED" != "0"; then
                start-stop-daemon --start --quiet --exec $PAND_DAEMON -- 
$PAND_OPTIONS
                log_progress_msg "pand"
        fi
}


stop_pan()
{
        if test "$DUND_ENABLED" != "0"; then
                start-stop-daemon --stop --quiet --exec $DUND_DAEMON || true
                log_progress_msg "dund"
        fi
        if test "$PAND_ENABLED" != "0"; then
                start-stop-daemon --stop --quiet --exec $PAND_DAEMON || true
                log_progress_msg "pand"
        fi
}

start_hid()
{
        if test "$HIDD_ENABLED" != "0"; then
                start-stop-daemon --start --quiet --exec $HIDD_DAEMON -- 
$HIDD_OPTIONS
                log_progress_msg "hidd"
        fi
}

stop_hid()
{
        if test "$HIDD_ENABLED" != "0"; then
                $HIDD_DAEMON --killall
                start-stop-daemon --stop --quiet --exec $HIDD_DAEMON || true
                log_progress_msg "hidd"
        fi
}

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

stop_uarts()
{
        killall hciattach > /dev/null 2>&1 || true
}

start_rfcomm()
{
        if [ -x $RFCOMM ] && [ -f $RFCOMM_CONF ] ; then
                # rfcomm must always succeed for now: users
                # may not yet have an rfcomm-enabled kernel
                $RFCOMM -f $RFCOMM_CONF bind all || true
                log_progress_msg "$RFCOMM_NAME"
        fi
}

stop_rfcomm()
{
        if [ -x $RFCOMM ] ; then
                log_progress_msg "$RFCOMM_NAME"
                $RFCOMM unbind all || true
        fi
}

restart_rfcomm()
{
        if [ -x $RFCOMM ] && [ -f $RFCOMM_CONF ] ; then
                $RFCOMM unbind all || true
                $RFCOMM -f $RFCOMM_CONF bind all || true
                log_progress_msg "$RFCOMM_NAME"
        fi
}

case "$1" in
  start)
        log_daemon_msg "Starting $DESC"
        
        if test "$BLUETOOTH_ENABLED" == "0"; then
                log_progress_msg "disabled. see /etc/default/bluetooth"
                log_end_msg 0
                exit 0
        fi

        start-stop-daemon --start --quiet --exec $HCID -- $HCID_OPTIONS || true
        log_progress_msg "hcid"
        start_uarts || true
        
        start-stop-daemon --start --quiet --exec $SDPD || true
        log_progress_msg "sdpd"
    
        run_sdptool || true
        log_progress_msg "sdp_options"

        start_hid || true
        enable_hci_input || true
        start_rfcomm || true
        start_pan || true
        log_end_msg 0
    ;;
  stop)
        log_daemon_msg "Stopping $DESC"
        stop_pan || true
        stop_rfcomm || true
        disable_hci_input || true
        stop_hid || true
        start-stop-daemon --stop --quiet --exec $SDPD || true
        log_progress_msg "$SDPD_NAME"
        start-stop-daemon --stop --quiet --exec $HCID || true
        log_progress_msg "$HCID_NAME"
        stop_uarts || true
        log_end_msg 0
    ;;
  restart|force-reload)
        log_daemon_msg "Restarting $DESC"
        stop_hid || true
        stop_pan || true
        start-stop-daemon --stop --quiet --exec $SDPD || true
        start-stop-daemon --stop --quiet --exec $HCID || true
        sleep 1
        if test "$BLUETOOTH_ENABLED" == "0"; then
                log_progress_msg "disabled. see /etc/default/bluetooth"
                log_end_msg 0
                exit 0
        fi
        start-stop-daemon --start --quiet --exec $HCID -- $HCID_OPTIONS|| true
        start-stop-daemon --start --quiet --exec $SDPD || true
        log_progress_msg "$HCID_NAME"
        log_progress_msg "$SDPD_NAME"
        start_pan || true
        start_hid || true
        restart_rfcomm
        log_end_msg 0
    ;;
  *)
        N=/etc/init.d/bluetooth
        # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

exit 0

# vim:noet

Reply via email to