mirror of
https://github.com/ivanilves/xiringuito.git
synced 2025-05-21 01:30:27 -07:00
Merge pull request #22 from ivanilves/positional-params-and-reconnect
Positional params and reconnect
This commit is contained in:
commit
6bf9cce722
@ -26,7 +26,7 @@ function teardown() {
|
|||||||
echo "CONNECTED"
|
echo "CONNECTED"
|
||||||
|
|
||||||
FAILED_PINGS=0
|
FAILED_PINGS=0
|
||||||
while [[ ${FAILED_PINGS} -lt 20 ]]; do
|
while [[ ${FAILED_PINGS} -lt 10 ]]; do
|
||||||
ping -c3 -nq ${CLIENT_IP_ADDR} >/dev/null
|
ping -c3 -nq ${CLIENT_IP_ADDR} >/dev/null
|
||||||
if [[ ${?} -ne 0 ]]; then
|
if [[ ${?} -ne 0 ]]; then
|
||||||
let FAILED_PINGS+=1
|
let FAILED_PINGS+=1
|
||||||
|
51
xiringuito
51
xiringuito
@ -4,6 +4,16 @@
|
|||||||
#
|
#
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
function print_help() {
|
||||||
|
echo "Usage: ${0} [OPTIONS] [SSH_USER@]SSH_SERVER [NETWORK1, NETWORK2, ... NETWORKx]"
|
||||||
|
echo
|
||||||
|
echo "OPTIONS"
|
||||||
|
echo "-R do not reconnect after connection failure"
|
||||||
|
echo "-D do not fetch DNS config from server"
|
||||||
|
echo "-h show this extremely helpful message"
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
declare -r KERNEL=$(uname -s | tr [A-Z] [a-z])
|
declare -r KERNEL=$(uname -s | tr [A-Z] [a-z])
|
||||||
if [[ ${KERNEL} != linux && ${KERNEL} != darwin ]]; then
|
if [[ ${KERNEL} != linux && ${KERNEL} != darwin ]]; then
|
||||||
echo "Unsupported system: ${KERNEL}"
|
echo "Unsupported system: ${KERNEL}"
|
||||||
@ -19,10 +29,37 @@ if [[ ${KERNEL} == darwin ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ${#} -lt 1 ]]; then
|
if [[ ${#} -lt 1 ]]; then
|
||||||
echo "Usage: ${0} [SSH_USER@]SSH_SERVER [NETWORK1, NETWORK2, ... NETWORKx]"
|
print_help
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# We need to save executable path and arguments for reconnection functionality
|
||||||
|
declare -r ORIGINAL_EXEC=${0}
|
||||||
|
declare -r ORIGINAL_ARGS=${@}
|
||||||
|
|
||||||
|
while getopts "RDrh" o; do
|
||||||
|
case ${o} in
|
||||||
|
R)
|
||||||
|
NO_RECONNECT=true
|
||||||
|
;;
|
||||||
|
D)
|
||||||
|
NO_DNS=true
|
||||||
|
;;
|
||||||
|
r)
|
||||||
|
RECONNECTING=true
|
||||||
|
;;
|
||||||
|
h)
|
||||||
|
print_help
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
print_help
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
shift $((OPTIND-1))
|
||||||
|
|
||||||
cd $(dirname ${0})
|
cd $(dirname ${0})
|
||||||
|
|
||||||
./scripts/client-preexec.sh
|
./scripts/client-preexec.sh
|
||||||
@ -99,8 +136,8 @@ fi
|
|||||||
|
|
||||||
set +e
|
set +e
|
||||||
for NETWORK in ${NETWORKS}; do
|
for NETWORK in ${NETWORKS}; do
|
||||||
echo "> ROUTE: ${NETWORK}"
|
echo "> ROUTE: ${NETWORK}"
|
||||||
./scripts/${KERNEL}/client-route.sh ${LOCAL_TUNNEL_ID} ${NETWORK}
|
[[ -z "${RECONNECTING}" ]] && ./scripts/${KERNEL}/client-route.sh ${LOCAL_TUNNEL_ID} ${NETWORK}
|
||||||
done
|
done
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
@ -121,8 +158,8 @@ fi
|
|||||||
|
|
||||||
set +e
|
set +e
|
||||||
FAILED_PINGS=0
|
FAILED_PINGS=0
|
||||||
while [[ ${FAILED_PINGS} -lt 20 ]]; do
|
while [[ ${FAILED_PINGS} -lt 10 ]]; do
|
||||||
kill -0 ${SSH_PID} &>/dev/null || exit 17
|
kill -0 ${SSH_PID} &>/dev/null || break
|
||||||
|
|
||||||
./scripts/client-ping-server.sh ${TUNNEL_ID} ${IP_BASE}
|
./scripts/client-ping-server.sh ${TUNNEL_ID} ${IP_BASE}
|
||||||
if [[ ${?} -ne 0 ]]; then
|
if [[ ${?} -ne 0 ]]; then
|
||||||
@ -136,3 +173,7 @@ while [[ ${FAILED_PINGS} -lt 20 ]]; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
teardown
|
teardown
|
||||||
|
|
||||||
|
if [[ -z "${NO_RECONNECT}" ]]; then
|
||||||
|
exec ${ORIGINAL_EXEC} -r ${ORIGINAL_ARGS}
|
||||||
|
fi
|
||||||
|
Loading…
x
Reference in New Issue
Block a user