Add the ridiculous arp remctl we all want but shouldn't need
[invirt/packages/invirt-remote.git] / host / usr / sbin / invirt-vmcontrol
index 66f5ca6..eaac5ac 100755 (executable)
@@ -41,6 +41,22 @@ case "$ACTION" in
     vnctoken)
         invirt-vnc-authtoken "$ORIGMACHINE"
         ;;
+    arp)
+       iface=`invirt-getconf xen.iface`
+       xs_prefix="/local/domain/0/backend/vif"
+       domid=`xm domid $MACHINE`
+       for vif in `xenstore-list $xs_prefix/$domid`; do
+           ip=`xenstore-read $xs_prefix/$domid/$vif/ip`
+           script=`xenstore-read $xs_prefix/$domid/$vif/script`
+           gw=`echo $script | sed -ne 's/.* gateway=\([0-9\.]*\).*/\1/p'`
+           oip=`echo $script | sed -ne 's/.* other_ip=\([0-9\.]*\).*/\1/p'`
+           ogw=`echo $script | sed -ne 's/.* other_gateway=\([0-9\.]*\).*/\1/p'`
+           timeout 5 /usr/sbin/arpspoof -i $iface -t $gw $ip
+           if [ -n "$oip" ]; then
+               timeout 5 /usr/sbin/arpspoof -i $iface -t $ogw $oip
+           fi
+       done
+       ;;
     *)
         echo "ERROR: Invalid Command"
         exit 34