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
|