diff options
| author | makefu <github@syntax-fehler.de> | 2014-02-21 13:23:05 +0100 | 
|---|---|---|
| committer | makefu <github@syntax-fehler.de> | 2014-02-21 13:23:05 +0100 | 
| commit | 1046da40ddc283cdec9d3156ecd6a37117c083cf (patch) | |
| tree | d666d71bbc1dd5344539ce707355164238dfe03f /ship | |
| parent | 3843ad66568d099e2b0bb2f7158753066b69c965 (diff) | |
add //ship/src/refresh-supers
this script updates the currently configured supernodes in
/etc/tinc/retiolum/tinc.conf with 5 random working supernodes in the retiolum
darknet.
The tinc.conf file can be given via environment.
the hosts should be up-to-date in order to find all available supernodes.
Diffstat (limited to 'ship')
| -rw-r--r-- | ship/lib/retiolum | 11 | ||||
| -rw-r--r-- | ship/src/find-supers-tinc | 4 | ||||
| -rw-r--r-- | ship/src/refresh-supers | 26 | 
3 files changed, 35 insertions, 6 deletions
| diff --git a/ship/lib/retiolum b/ship/lib/retiolum index 015537bd..2a5c7338 100644 --- a/ship/lib/retiolum +++ b/ship/lib/retiolum @@ -1,8 +1,9 @@  #!/bin/sh  # retiolum host functions  #@include core +tinc_path=${tinc_path:-/etc/tinc}  netname=${netname:-retiolum} - +hosts_dir=${hosts_dir:-$tinc_path/$netname/hosts}  check_free_v4(){    myipv4=${1-10.243.0.-1} @@ -11,7 +12,7 @@ check_free_v4(){    if [ "$v4num" -gt 0 -a "$v4num" -lt "256" ];    then       info "No retard detected\n" -    cd /etc/tinc/$netname/hosts +    cd $hosts_dir      info "Check if ip is still free: "      for i in `ls -1`; do        if grep -q -e $myipv4\$ $i ;then @@ -30,8 +31,9 @@ check_free_v4(){  find_active_nodes(){    # TODO this function currently only supports a single address for a host -  cd /etc/tinc/retiolum/hosts +  cd $hosts_dir    # posix grep does not support [[:space:]] +  set +f    for name in `      grep '^[  ]*Address[  ]*=' * |        cut -d: -f1 | sort | uniq @@ -53,7 +55,8 @@ find_active_nodes(){    cd - >/dev/null  }  find_supernodes(){ -  cd /etc/tinc/retiolum/hosts +  cd $hosts_dir +  set +f    for name in `      grep '^[  ]*Address[  ]*=' * |        cut -d: -f1 | sort | uniq diff --git a/ship/src/find-supers-tinc b/ship/src/find-supers-tinc index edbb5a7b..3ea53d35 100644 --- a/ship/src/find-supers-tinc +++ b/ship/src/find-supers-tinc @@ -1,6 +1,6 @@  #!/bin/sh +#@info  #@include core  #@include retiolum -find_supernodes | cut -d\  -f 1 | shuf | head -n 5 \ -  | xargs -n1 printf "ConnectTo=%s\n" +find_supernodes diff --git a/ship/src/refresh-supers b/ship/src/refresh-supers new file mode 100644 index 00000000..26909a94 --- /dev/null +++ b/ship/src/refresh-supers @@ -0,0 +1,26 @@ +#!/bin/sh +#@info +# usage: [DEBUG=1] [tincconf=/not/tinc/retiolum/tinc.conf] $0  +#@include core +#@include retiolum +  # using find_supernodes +  #       tinc_path +  #       netname + +#@strict +#@mainifyme + +max_connect_to=${max_connect_to:-5} +tincconf=${tincconf:-$tinc_path/$netname/tinc.conf} +tmp_tincconf=$(mktemp) +defer "rm -f $tmp_tincconf" + +sed '/[  ]*ConnectTo=/d' "$tincconf" > "$tmp_tincconf" + +find_supernodes | cut -d\  -f 1 | shuf \ +  | head -n "${max_connect_to}" \ +  | xargs -n1 printf "ConnectTo=%s\n" >> "$tmp_tincconf" + +info "replacing old tinc.conf with one" +test "${DEBUG:-}" && diff "$tincconf" "$tmp_tincconf" +mv "$tmp_tincconf" "$tincconf" | 
