@@ -26,14 +26,11 @@ source bashlib #
26
26
27
27
# Load and parse the tunnel configuration file.
28
28
cd
29
- TMPDIR=${TMPDIR:-/ tmp} TMPDIR=${TMPDIR%/ }
30
- _logVerbosity=2 logDir= config=()
29
+ config=()
31
30
source " $HOME /.tunmgrd.conf"
32
31
: ${logDir:= $TMPDIR }
33
- [[ -t 1 ]]
34
- : ${logColor:= $(( ! $? ))}
35
32
_logFile=$logDir /tunmgrd.log
36
- _logColor= $logColor
33
+ loopDelay=3
37
34
for (( t= 0 ; t < ${# config[@]} ; ++ t)) ; do
38
35
read urls[t] modifiers[t] configs[t] <<< " ${config[t]}"
39
36
done
@@ -89,11 +86,12 @@ while true; do
89
86
schema=${urls[t]%%://* }
90
87
case " $schema " in
91
88
ssh) port=${port:- 22} ;;
92
- http) port=${port:- 80} ;;
93
- https) port=${port:- 443} ;;
89
+ http) host= ${host %%/* } port=${port:- 80} ;;
90
+ https) host= ${host %%/* } port=${port:- 443} ;;
94
91
esac
95
92
96
93
# Can we get a response over the connection? -> up
94
+ dbg ' Looking for activity for: %s (%s)' " ${urls[t]} " " ${out[t]} "
97
95
if [[ ${out[t]} ]] && {
98
96
read -d ' '
99
97
for tries in {1..3}; do
@@ -109,6 +107,7 @@ while true; do
109
107
fi
110
108
111
109
# No response received - Is the process alive? -> lag
110
+ dbg ' No activity, checking if controller(pid: %s, %s) is alive: %s' " ${pid[t]} " " ${state[t]} " " ${urls[t]} "
112
111
if kill -0 " ${pid[t]} " 2> /dev/null; then
113
112
[[ ${state[t]} != @ (conn| lag) ]] && {
114
113
state[t]=lag
@@ -118,6 +117,7 @@ while true; do
118
117
fi
119
118
120
119
# Process disappeared. -> down
120
+ dbg ' No controller, cleaning up: %s' " ${urls[t]} "
121
121
[[ ${state[t]} != @ (n/a| down| ) ]] && {
122
122
state[t]=down
123
123
perr ' Connection Lost: %s' " ${urls[t]} "
@@ -128,6 +128,7 @@ while true; do
128
128
129
129
130
130
# No process, check service availability. -> unavailable
131
+ dbg ' Checking if available: %s (%s:%s)' " ${urls[t]} " " $host " " $port "
131
132
if ! nc -z " $host " " $port " & > /dev/null; then
132
133
[[ ${state[t]} != n/a ]] && {
133
134
wrn ' Connection Unavailable: %s - %s:%d' " ${urls[t]} " " $host " " $port "
@@ -177,8 +178,10 @@ while true; do
177
178
;;
178
179
179
180
http* )
180
- curl -sSnfo - " $url " > " ${out[t]} " 2> " ${err[t]} " &
181
+ set -x
182
+ curl -sSnfo - " ${urls[t]} " > " ${out[t]} " 2> " ${err[t]} " &
181
183
state[t]=conn pid[t]=$!
184
+ set +x
182
185
;;
183
186
184
187
* )
@@ -187,5 +190,6 @@ while true; do
187
190
esac
188
191
done
189
192
190
- sleep 1
193
+ dbg ' Restarting in %ss' " $loopDelay "
194
+ sleep " $loopDelay "
191
195
done
0 commit comments