diff --git a/extras/vpnupgrade.sh b/extras/vpnupgrade.sh index c760db0..0bee9df 100755 --- a/extras/vpnupgrade.sh +++ b/extras/vpnupgrade.sh @@ -15,7 +15,7 @@ # know how you have improved it! # (Optional) Specify which Libreswan version to install. See: https://libreswan.org -# NOTE: If not specified, the latest supported version will be installed. +# If not specified, the latest supported version will be installed. SWAN_VER= ### DO NOT edit below this line ### diff --git a/extras/vpnupgrade_alpine.sh b/extras/vpnupgrade_alpine.sh index c86ae08..94ef0d4 100755 --- a/extras/vpnupgrade_alpine.sh +++ b/extras/vpnupgrade_alpine.sh @@ -13,8 +13,9 @@ # Attribution required: please include my name in any derivative and let me # know how you have improved it! -# Specify which Libreswan version to install. See: https://libreswan.org -SWAN_VER=4.6 +# (Optional) Specify which Libreswan version to install. See: https://libreswan.org +# If not specified, the latest supported version will be installed. +SWAN_VER= ### DO NOT edit below this line ### @@ -55,20 +56,6 @@ check_os() { } check_libreswan() { - case $SWAN_VER in - 4.[5-6]) - true - ;; - *) -cat 1>&2 </dev/null) swan_ver_old=$(printf '%s' "$ipsec_ver" | sed -e 's/.*Libreswan U\?//' -e 's/\( (\|\/K\).*//') if ! printf '%s' "$ipsec_ver" | grep -q "Libreswan"; then @@ -80,6 +67,29 @@ EOF fi } +get_swan_ver() { + swan_ver_cur=4.6 + base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0" + swan_ver_url="$base_url/upg-v1-$os_type-$os_ver-swanver" + swan_ver_latest=$(wget -t 3 -T 15 -qO- "$swan_ver_url" | head -n 1) + if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$'; then + swan_ver_cur="$swan_ver_latest" + fi + [ -z "$SWAN_VER" ] && SWAN_VER="$swan_ver_cur" +} + +check_swan_ver() { + if ! printf '%s\n%s' "4.5" "$SWAN_VER" | sort -C -V \ + || ! printf '%s\n%s' "$SWAN_VER" "$swan_ver_cur" | sort -C -V; then +cat 1>&2 <&2 </dev/null) swan_ver_old=$(printf '%s' "$ipsec_ver" | sed -e 's/.*Libreswan U\?//' -e 's/\( (\|\/K\).*//') if ! printf '%s' "$ipsec_ver" | grep -q "Libreswan"; then @@ -63,6 +50,30 @@ EOF fi } +get_swan_ver() { + swan_ver_cur=4.6 + base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0" + swan_ver_url="$base_url/upg-v1-amzn-2-swanver" + swan_ver_latest=$(wget -t 3 -T 15 -qO- "$swan_ver_url" | head -n 1) + if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$'; then + swan_ver_cur="$swan_ver_latest" + fi + [ -z "$SWAN_VER" ] && SWAN_VER="$swan_ver_cur" +} + +check_swan_ver() { + if [ "$SWAN_VER" != "3.32" ] \ + && { ! printf '%s\n%s' "4.1" "$SWAN_VER" | sort -C -V \ + || ! printf '%s\n%s' "$SWAN_VER" "$swan_ver_cur" | sort -C -V; }; then +cat 1>&2 <&2 </dev/null) swan_ver_old=$(printf '%s' "$ipsec_ver" | sed -e 's/.*Libreswan U\?//' -e 's/\( (\|\/K\).*//') if ! printf '%s' "$ipsec_ver" | grep -q "Libreswan"; then @@ -81,6 +68,30 @@ EOF fi } +get_swan_ver() { + swan_ver_cur=4.6 + base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0" + swan_ver_url="$base_url/upg-v1-$os_type-$os_ver-swanver" + swan_ver_latest=$(wget -t 3 -T 15 -qO- "$swan_ver_url" | head -n 1) + if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$'; then + swan_ver_cur="$swan_ver_latest" + fi + [ -z "$SWAN_VER" ] && SWAN_VER="$swan_ver_cur" +} + +check_swan_ver() { + if [ "$SWAN_VER" != "3.32" ] \ + && { ! printf '%s\n%s' "4.1" "$SWAN_VER" | sort -C -V \ + || ! printf '%s\n%s' "$SWAN_VER" "$swan_ver_cur" | sort -C -V; }; then +cat 1>&2 <&2 </dev/null) swan_ver_old=$(printf '%s' "$ipsec_ver" | sed -e 's/.*Libreswan U\?//' -e 's/\( (\|\/K\).*//') if ! printf '%s' "$ipsec_ver" | grep -q "Libreswan"; then @@ -90,6 +73,34 @@ EOF fi } +get_swan_ver() { + swan_ver_cur=4.6 + base_url="https://github.com/hwdsl2/vpn-extras/releases/download/v1.0.0" + swan_ver_url="$base_url/upg-v1-$os_type-$os_ver-swanver" + swan_ver_latest=$(wget -t 3 -T 15 -qO- "$swan_ver_url" | head -n 1) + if printf '%s' "$swan_ver_latest" | grep -Eq '^([3-9]|[1-9][0-9]{1,2})(\.([0-9]|[1-9][0-9]{1,2})){1,2}$'; then + swan_ver_cur="$swan_ver_latest" + fi + [ -z "$SWAN_VER" ] && SWAN_VER="$swan_ver_cur" +} + +check_swan_ver() { + if [ "$SWAN_VER" = "3.32" ] && [ "$os_ver" = "11" ]; then + exiterr "Libreswan 3.32 is not supported on Debian 11." + fi + + if [ "$SWAN_VER" != "3.32" ] \ + && { ! printf '%s\n%s' "4.1" "$SWAN_VER" | sort -C -V \ + || ! printf '%s\n%s' "$SWAN_VER" "$swan_ver_cur" | sort -C -V; }; then +cat 1>&2 <