You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.7 KiB
71 lines
2.7 KiB
#!/bin/sh
|
|
#/***************************************************************************
|
|
# dunhandler - a script for tdeio_sdp
|
|
# -------------------
|
|
# begin : Mon March 29 2004
|
|
# copyright : (C) 2004 by Simone Gotti
|
|
# email : simone.gotti@email.it
|
|
# ***************************************************************************/
|
|
#
|
|
#/***************************************************************************
|
|
# * *
|
|
# * 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. *
|
|
# * *
|
|
# ***************************************************************************/
|
|
|
|
|
|
|
|
# get the btaddress and the rfcomm channel from the command line
|
|
BTADDR=$(echo $1 | cut -d'/' -f3 | cut -d'[' -f2 | cut -d']' -f1)
|
|
PARAMS=$(echo $1 | cut -d'?' -f2 )
|
|
|
|
OLDIFS=$IFS
|
|
IFS='&'
|
|
for i in $PARAMS; do
|
|
if test $(echo $i | cut -d'=' -f1) = "rfcommchannel"; then
|
|
RFCOMM_CHANNEL=$(echo $i | cut -d'=' -f2)
|
|
fi
|
|
done;
|
|
IFS=$OLDIFS
|
|
|
|
RFCOMM_SHOW_OUT=$(rfcomm show)
|
|
|
|
# Check if the channel is already binded
|
|
BINDED_CHANNEL=$(echo $RFCOMM_SHOW_OUT | grep -i $BTADDR | grep -i " "$RFCOMM_CHANNEL" " | cut -d' ' -f1 | cut -d':' -f1)
|
|
|
|
if test "x"$BINDED_CHANNEL != "x"; then
|
|
MESSAGE1="A bind between the bluetooth device (using the dial-up-networking profile) and /dev/rfcomm$DEV_NUMBER already exists. You can use any connection program (kppp, pppd script etc...) using /dev/rfcomm$DEV_NUMBER like the modem device"
|
|
|
|
kdialog --msgbox "$MESSAGE1"
|
|
else
|
|
|
|
# Find the first unbinded /dev/rfcommX
|
|
DEV_NUMBER=0
|
|
while test "x"$(echo $RFCOMM_SHOW_OUT | grep "rfcomm"$DEV_NUMBER":"| cut -d' ' -f1 ) != "x"; do
|
|
DEV_NUMBER=$[$DEV_NUMBER+1]
|
|
if test $DEV_NUMBER -gt 255; then break; fi;
|
|
done;
|
|
|
|
|
|
# do the bind
|
|
echo "doing: rfcomm bind $DEV_NUMBER $BTADDR $RFCOMM_CHANNEL"
|
|
|
|
if test -e /def/rfcomm$DEV_NUMBER; then
|
|
EXIT_CODE=$(tdesu -f/dev/rfcomm$DEV_NUMBER -c "rfcomm bind $DEV_NUMBER $BTADDR $RFCOMM_CHANNEL")
|
|
else
|
|
EXIT_CODE=$(tdesu -c "rfcomm bind $DEV_NUMBER $BTADDR $RFCOMM_CHANNEL")
|
|
fi
|
|
|
|
echo $EXIT_CODE
|
|
|
|
MESSAGE1="Created a bind between the bluetooth device (using the dial-up-networking profile) and /dev/rfcomm$DEV_NUMBER. You can use any connection program (kppp, pppd script etc...) using /dev/rfcomm$DEV_NUMBER like the modem device"
|
|
|
|
kdialog --msgbox "$MESSAGE1"
|
|
|
|
fi;
|
|
|
|
|