update the socketkiller in the eventscripts to be able to handle ipv6
authorRonnie Sahlberg <ronniesahlberg@gmail.com>
Tue, 19 Aug 2008 23:47:00 +0000 (09:47 +1000)
committerRonnie Sahlberg <ronniesahlberg@gmail.com>
Tue, 19 Aug 2008 23:47:00 +0000 (09:47 +1000)
config/functions

index 5df121f7310c4775bb5556189ba711516e1e2bb5..36f0e9e05e0d7061e8705551e04c26eeb6dd1ded 100644 (file)
@@ -224,11 +224,12 @@ kill_tcp_connections() {
     _killcount=0
     connfile="$CTDB_BASE/state/connections.$_IP"
     netstat -tn |egrep "^tcp.*[[:space:]]+$_IP:.*ESTABLISHED" | awk '{print $4" "$5}' > $connfile
+
     while read dest src; do
-       srcip=`echo $src | cut -d: -f1`
-       srcport=`echo $src | cut -d: -f2`
-       destip=`echo $dest | cut -d: -f1`
-       destport=`echo $dest | cut -d: -f2`
+       srcip=`echo $src | sed -e "s/:[^:]*$//"`
+       srcport=`echo $src | sed -e "s/^.*://"`
+       destip=`echo $dest | sed -e "s/:[^:]*$//"`
+       destport=`echo $dest | sed -e "s/^.*://"`
        echo "Killing TCP connection $srcip:$srcport $destip:$destport"
        ctdb killtcp $srcip:$srcport $destip:$destport >/dev/null 2>&1 || _failed=1
        case $destport in
@@ -240,8 +241,9 @@ kill_tcp_connections() {
                ;;
        esac
        _killcount=`expr $_killcount + 1`
-    done < $connfile
+     done < $connfile
     /bin/rm -f $connfile
+
     [ $_failed = 0 ] || {
        echo "Failed to send killtcp control"
        return;
@@ -352,3 +354,4 @@ startstop_nfslock() {
 [ -x $CTDB_BASE/rc.local ] && {
        . $CTDB_BASE/rc.local
 }
+