diff options
Diffstat (limited to 'contrib/scripts/netjail/netjail_setup_internet.sh')
-rwxr-xr-x | contrib/scripts/netjail/netjail_setup_internet.sh | 54 |
1 files changed, 38 insertions, 16 deletions
diff --git a/contrib/scripts/netjail/netjail_setup_internet.sh b/contrib/scripts/netjail/netjail_setup_internet.sh index 7ff25c014..de8ef8f15 100755 --- a/contrib/scripts/netjail/netjail_setup_internet.sh +++ b/contrib/scripts/netjail/netjail_setup_internet.sh | |||
@@ -31,6 +31,7 @@ netjail_check_bin $1 | |||
31 | LOCAL_GROUP="192.168.15" | 31 | LOCAL_GROUP="192.168.15" |
32 | GLOBAL_GROUP="92.68.150" | 32 | GLOBAL_GROUP="92.68.150" |
33 | 33 | ||
34 | CLEANUP=0 | ||
34 | echo "Start [local: $LOCAL_GROUP.0/24, global: $GLOBAL_GROUP.0/24, stun: $STUN]" | 35 | echo "Start [local: $LOCAL_GROUP.0/24, global: $GLOBAL_GROUP.0/24, stun: $STUN]" |
35 | 36 | ||
36 | NETWORK_NET=$(netjail_print_name "n" $GLOBAL_N $LOCAL_M) | 37 | NETWORK_NET=$(netjail_print_name "n" $GLOBAL_N $LOCAL_M) |
@@ -90,26 +91,47 @@ for N in $(seq $GLOBAL_N); do | |||
90 | done | 91 | done |
91 | done | 92 | done |
92 | 93 | ||
93 | for PID in $WAITING; do wait $PID; done | 94 | cleanup() { |
94 | for PID in $KILLING; do netjail_kill $PID; done | 95 | if [ $STUN -gt 0 ]; then |
95 | wait | 96 | STUN_NODE=$(netjail_print_name "S" 254) |
96 | 97 | ||
97 | if [ $STUN -gt 0 ]; then | 98 | netjail_node_unlink_bridge $STUN_NODE $NETWORK_NET |
98 | STUN_NODE=$(netjail_print_name "S" 254) | 99 | netjail_node_clear $STUN_NODE |
100 | fi | ||
99 | 101 | ||
100 | netjail_node_unlink_bridge $STUN_NODE $NETWORK_NET | 102 | for N in $(seq $GLOBAL_N); do |
101 | netjail_node_clear $STUN_NODE | 103 | ROUTER_NET=$(netjail_print_name "r" $N) |
102 | fi | ||
103 | 104 | ||
104 | for N in $(seq $GLOBAL_N); do | 105 | for M in $(seq $LOCAL_M); do |
105 | for M in $(seq $LOCAL_M); do | 106 | NODE=$(netjail_print_name "N" $N $M) |
106 | netjail_node_clear $(netjail_print_name "N" $N $M) | 107 | |
108 | netjail_node_unlink_bridge $NODE $ROUTER_NET | ||
109 | netjail_node_clear $NODE | ||
110 | done | ||
111 | |||
112 | ROUTER=$(netjail_print_name "R" $N) | ||
113 | |||
114 | netjail_bridge_clear $ROUTER_NET | ||
115 | netjail_node_unlink_bridge $ROUTER $NETWORK_NET | ||
116 | netjail_node_clear $ROUTER | ||
107 | done | 117 | done |
108 | |||
109 | netjail_bridge_clear $(netjail_print_name "r" $N) | ||
110 | netjail_node_clear $(netjail_print_name "R" $N) | ||
111 | done | ||
112 | 118 | ||
113 | netjail_bridge_clear $NETWORK_NET | 119 | netjail_bridge_clear $NETWORK_NET |
120 | } | ||
121 | |||
122 | trapped_cleanup() { | ||
123 | netjail_killall $WAITING | ||
124 | netjail_killall $KILLING | ||
125 | |||
126 | cleanup | ||
127 | } | ||
128 | |||
129 | trap 'trapped_cleanup' 2 | ||
130 | |||
131 | netjail_waitall $WAITING | ||
132 | netjail_killall $KILLING | ||
133 | wait | ||
134 | |||
135 | cleanup | ||
114 | 136 | ||
115 | echo "Done" | 137 | echo "Done" |