Miniupnpd: update to 2.0
[tomato.git] / release / src / router / usbmodeswitch / usb_modeswitch.sh
blobb126ec3114a74ae4395470e6cfbafedeb836d0ac
1 #!/bin/sh
2 # part of usb_modeswitch 2.4.0
3 device_in()
5 if [ ! -e /var/lib/usb_modeswitch/$1 ]; then
6 return 0
7 fi
8 while read line
9 do
10 if [ $(expr "$line" : "$2:$3") != 0 ]; then
11 return 1
13 done </var/lib/usb_modeswitch/$1
14 if [ $(expr "$line" : "$2:$3") != 0 ]; then
15 return 1
17 return 0
20 if [ $(expr "$1" : "--.*") ]; then
21 p_id=$4
22 if [ -z $p_id ]; then
23 prod=$5
24 if [ -z $prod ]; then
25 prod=$3
27 prod=${prod%/*}
28 v_id=0x${prod%/*}
29 p_id=0x${prod#*/}
30 if [ "$v_id" = "0x" ]; then
31 v_id="0"
32 p_id="0"
34 v_id="$(printf %04x $(($v_id)))"
35 p_id="$(printf %04x $(($p_id)))"
36 else
37 v_id=$3
40 PATH=/sbin:/usr/sbin:$PATH
41 case "$1" in
42 --driver-bind)
43 # driver binding code removed
44 exit 0
46 --symlink-name)
47 device_in "link_list" $v_id $p_id
48 if [ "$?" = "1" ]; then
49 if [ -e "/usr/sbin/usb_modeswitch_dispatcher" ]; then
50 exec usb_modeswitch_dispatcher $1 $2 2>>/dev/null
53 exit 0
55 esac
57 IFS='/' read -r p1 p2 <<EOF
59 EOF
61 PATH=/bin:/sbin:/usr/bin:/usr/sbin
62 init_path=`readlink /sbin/init`
63 if [ `basename $init_path` = "systemd" ]; then
64 systemctl --no-block start usb_modeswitch@$p1'_'$p2.service
65 elif [ -e "/etc/init/usb-modeswitch-upstart.conf" ]; then
66 initctl emit --no-wait usb-modeswitch-upstart UMS_PARAM=$1
67 else
68 # only old distros, new udev will kill all subprocesses
69 exec 1<&- 2<&- 5<&- 7<&-
70 exec usb_modeswitch_dispatcher --switch-mode $1 &
72 exit 0