Fixed breakage caused by splitting on SPACE in OPENVPN_CONFIG
Changed to split on comma as many openvpn configs have space in the name. Added a bit more validation that a provider is set. Updated docs.
This commit is contained in:
@@ -65,10 +65,10 @@ Find available OpenVPN configurations by looking in the openvpn folder of the Gi
|
||||
-e "OPENVPN_CONFIG=ipvanish-AT-Vienna-vie-c02"
|
||||
```
|
||||
|
||||
You can also provide a list of openvpn configuration filenames separated by a space.
|
||||
You can also provide a comma separated list of openvpn configuration filenames.
|
||||
If you provide a list, a file will be randomly chosen in the list, this is useful for redundancy setups. For example:
|
||||
```
|
||||
-e "OPENVPN_CONFIG=ipvanish-AT-Vienna-vie-c02 ipvanish-FR-Paris-par-a01 ipvanish-DE-Frankfurt-fra-a01"
|
||||
-e "OPENVPN_CONFIG=ipvanish-AT-Vienna-vie-c02,ipvanish-FR-Paris-par-a01,ipvanish-DE-Frankfurt-fra-a01"
|
||||
```
|
||||
If you provide a list and the selected server goes down, after the value of ping-timeout the container will be restarted and a server will be randomly chosen, note that the faulty server can be chosen again, if this should occur, the container will be restarted again until a working server is selected.
|
||||
|
||||
|
@@ -1,7 +1,11 @@
|
||||
#!/bin/bash
|
||||
VPN_PROVIDER="${OPENVPN_PROVIDER,,}"
|
||||
VPN_PROVIDER_CONFIGS="/etc/openvpn/${VPN_PROVIDER}"
|
||||
if [[ ! -d "${VPN_PROVIDER_CONFIGS}" ]]; then
|
||||
|
||||
if [[ "${OPENVPN_PROVIDER}" == "**None**" ]] || [[ -z "${OPENVPN_PROVIDER-}" ]]; then
|
||||
echo "OpenVPN provider not set. Exiting."
|
||||
exit 1
|
||||
elif [[ ! -d "${VPN_PROVIDER_CONFIGS}" ]]; then
|
||||
echo "Could not find OpenVPN provider: ${OPENVPN_PROVIDER}"
|
||||
echo "Please check your settings."
|
||||
exit 1
|
||||
@@ -9,14 +13,12 @@ fi
|
||||
|
||||
echo "Using OpenVPN provider: ${OPENVPN_PROVIDER}"
|
||||
|
||||
if [[ ! -z "${OPENVPN_CONFIG}" ]]; then
|
||||
n=$(echo "$OPENVPN_CONFIG" | wc -w)
|
||||
if [ $n -gt 1 ]
|
||||
then
|
||||
rnd=$((RANDOM%n+1))
|
||||
srv=$(echo "$OPENVPN_CONFIG" | awk -vrnd=$rnd '{print $rnd}')
|
||||
echo "$n servers found in OPENVPN_CONFIG, $srv chosen randomly"
|
||||
OPENVPN_CONFIG=$srv
|
||||
if [[ -n "${OPENVPN_CONFIG-}" ]]; then
|
||||
readarray -t OPENVPN_CONFIG_ARRAY <<< "${OPENVPN_CONFIG//,/$'\n'}"
|
||||
if (( ${#OPENVPN_CONFIG_ARRAY[@]} > 1 )); then
|
||||
OPENVPN_CONFIG_RANDOM=$((RANDOM%${#OPENVPN_CONFIG_ARRAY[@]}))
|
||||
echo "${#OPENVPN_CONFIG_ARRAY[@]} servers found in OPENVPN_CONFIG, ${OPENVPN_CONFIG_ARRAY[${OPENVPN_CONFIG_RANDOM}]} chosen randomly"
|
||||
OPENVPN_CONFIG="${OPENVPN_CONFIG_ARRAY[${OPENVPN_CONFIG_RANDOM}]}"
|
||||
fi
|
||||
|
||||
if [[ -f "${VPN_PROVIDER_CONFIGS}/${OPENVPN_CONFIG}".ovpn ]]; then
|
||||
|
Reference in New Issue
Block a user