diff options
Diffstat (limited to 'retiolum/scripts/adv_graphgen')
| -rwxr-xr-x[-rw-r--r--] | retiolum/scripts/adv_graphgen/find_super | 29 | 
1 files changed, 18 insertions, 11 deletions
| diff --git a/retiolum/scripts/adv_graphgen/find_super b/retiolum/scripts/adv_graphgen/find_super index c89a94fb..2c316d0e 100644..100755 --- a/retiolum/scripts/adv_graphgen/find_super +++ b/retiolum/scripts/adv_graphgen/find_super @@ -1,14 +1,21 @@ -#!/bin/sh +#! /bin/dash +set -eu  cd /etc/tinc/retiolum/hosts -ls -1  . | while read fname; -do -    for i in `sed -n 's/Address\s*=\s*\(.*\)/\1/p' $fname`;do -        if nc -zw 5 $i 655 2>/dev/null; then -            echo "$fname - $i reachable" -        #else -            #echo -n -            #echo "$fname - $i unreachable" - -        fi +for name in ` +  grep '^[[:space:]]*Address[[:space:]]*=' * | +    cut -d: -f1 | sort | uniq +`; do +  if eval "`sed -n ' +      s/[[:space:]]\+//g +      s/^\(Address\|Port\)=\(.*\)/\1="\${\1+\$\1\n}\2"/p +    ' $name`"; then +    port=${Port-655} +    for host in $Address; do +      if nc -zw 2 $host $port 2>/dev/null; then +        echo "$name [('$host', $port)]" +      fi &      done +    wait +  fi &  done +wait | 
