expect-connection 619 B

123456789101112131415161718192021222324252627282930313233
  1. #!/bin/bash
  2. #
  3. # Wait until a given IPsec connection becomes available
  4. #
  5. # Params:
  6. # $1 - connection name
  7. # $2 - maximum time to wait in seconds, default is 5 seconds
  8. if [[ $# -lt 1 || $# -gt 2 ]]
  9. then
  10. echo "invalid arguments"
  11. exit 1
  12. fi
  13. secs=$2
  14. [ ! $secs ] && secs=5
  15. cmd="swanctl --list-conns"
  16. grep 'load.*stroke' /etc/strongswan.conf >/dev/null
  17. if [ $? -eq 0 -o -n "$DAEMON_NAME" ]; then
  18. cmd="ipsec statusall"
  19. fi
  20. let steps=$secs*10
  21. for i in `seq 1 $steps`
  22. do
  23. $cmd 2>&1 | grep ^[[:space:]]*$1: >/dev/null
  24. [ $? -eq 0 ] && exit 0
  25. sleep 0.1
  26. done
  27. echo "Connection '$1' not available after $secs second(s)"
  28. exit 1