Magellan Linux

Diff of /trunk/usbip/usbippolld-sql

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 174 by niro, Wed May 9 15:05:23 2007 UTC revision 209 by niro, Tue May 22 10:16:59 2007 UTC
# Line 1  Line 1 
1  #!/bin/bash  #!/bin/bash
2    
 SQL_USER=jomo  
 SQL_PASS=j0m0  
 SQL_HOST=128.20.41.110  
 SQL_DB=jomo  
   
3  source /etc/conf.d/usbippolld  source /etc/conf.d/usbippolld
4  source /home/rogalla/cvsroot/alx-src/alxconfig-ng/functions/mysqlfunctions  source /usr/lib/alxconfig-ng/functions/mysqlfunctions
5    
6    # reset connection status for all clients on daemon startup
7    mysqldo "update clients set connected='0'"
8    
9  while true  while true
10  do  do
# Line 14  do Line 12  do
12    
13   for client in ${ALLCLIENTS}   for client in ${ALLCLIENTS}
14   do   do
15  # BUSID=$(mysqldo "select busid from clients where ip='${client}'")   # filter all not connected clients
 #  
 # if fping -q ${FPING_OPTS} ${client}  
 # then  
 # echo "-- polling client ${client} on dev ${BUSID}"  
 # usbip -a ${client} ${BUSID}  
 # else  
 # echo "-- client ${client} not found, removing from list"  
 #  
 # out=$(mktemp)  
 # port=$(usbip -p &> ${out};grep -B3 -i "128.20.3.3" ${out}  | grep Port | cut -d' '  -f2| sed "s|:||")  
 # usbip -d ${port}  
 # mysqldo "delete from clients where ip='${client}'"  
 # fi  
   
   
16   if [[ $(mysqldo "select connected from clients where ip='${client}'") = 1 ]]   if [[ $(mysqldo "select connected from clients where ip='${client}'") = 1 ]]
17   then   then
18   BUSID=$(mysqldo "select busid from clients where ip='${client}'")   BUSID=$(mysqldo "select busid from clients where ip='${client}'")
19    
20   echo "-- polling client ${client} on dev ${BUSID}"   echo "-- polling client #${client} on dev ${BUSID}"
21   usbip -a ${client} ${BUSID}   usbip -a ${client} ${BUSID}
22    
23     # disconnect non reachable ports
24     if [[ -n $(out=$(mktemp);usbip -a ${client} ${BUSID} &> ${out}; grep '\[Connection refused\]' ${out}) ]] ||
25     [[ -n $(out=$(mktemp);usbip -a ${client} ${BUSID} &> ${out}; grep '\[No route to host\]' ${out}) ]]
26     then
27     echo "-- client #${client} *non* reachable on dev ${BUSID}; reset connection state"
28     mysqldo "update clients set connected='0', busid='' where ip='${client}'"
29     fi
30   else   else
31   echo "-- client ${client} not found, removing from list"   echo "-- client #${client} not found, removing from list"
32    
33   out=$(mktemp)   out=$(mktemp)
34   port=$(usbip -p &> ${out};grep -B3 -i "${client}" ${out}  | grep Port | cut -d' '  -f2| sed "s|:||")   port=$(usbip -p &> ${out};grep -B3 -i "${client}" ${out}  | grep Port | cut -d' '  -f2| sed "s|:||")
35   [[ ! -z ${port} ]] && usbip -d ${port}   [[ ! -z ${port} ]] && usbip -d ${port}
36    
37     mysqldo "update clients set connected='0', busid='' where ip='${client}'"
38   fi   fi
39     # give the device the chance to (dis)connect
40     sleep 3
41     done
42    
43     sleep ${USBIP_WAIT_TIMEOUT}
44    
45    ## #TODO: fix driver b0rkage
46    # mage-lager ~ # usbip -d 05
47    # 8 ports available
48    #
49    # port 5 detached
50    # mage-lager ~ # usbip -p
51    # 8 ports available
52    #
53    # usbip err: vhci_driver.c:  60 (imported_device_init) sysfs_open_device 007  [No such file or directory]
54    # usbip err: vhci_driver.c: 140 (parse_status) init new device  [No such file or directory]
55    
56    
57     # disconnect all stale ports
58     staleports=$(out=$(mktemp);usbip -p &> ${out};grep '\<Port Initializing\>' ${out} | grep Port | cut -d' ' -f2 | sed "s|:||")
59     if [[ -n ${staleports} ]]
60     then
61     # wait some seconds, or driver may break !!
62   sleep ${USBIP_WAIT_TIMEOUT}   sleep ${USBIP_WAIT_TIMEOUT}
63   done   for port in ${staleports}
64     do
65     echo "-- disconnecting stale port #${port}"
66     usbip -d ${port}
67     # give the device the chance to disconnect
68     sleep 3
69     done
70     fi
71  done  done

Legend:
Removed from v.174  
changed lines
  Added in v.209