blob: 6dc6e8abe1177de12a9d65e8753391de77a49832 (
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
27
28
29
30
31
32
33
34
35
 | #!/bin/sh
#@info
# usage: [DEBUG=1] [tincconf=/not/tinc/retiolum/tinc.conf] $0 
# This is the implementation of the proposal how to update tinc supernode
# connections 
#@include core
#@include retiolum
  # using find_supernodes
  #       tinc_path
  #       netname
#@strict
#@mainifyme
refresh_supernode_keys
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"
# TODO find_supernodes requires netcat
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"
reload_tinc
 |