summaryrefslogtreecommitdiffstats
path: root/ship/src/refresh-supers
blob: 26909a9460de9cbf4e06bdf7c0124b22172e9a64 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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"