提交 27143861 编写于 作者: J j3l11234 提交者: coolsnowwolf

wireguard: bump to v0.0.20191012 (#1819)

上级 d24f2401
...@@ -11,12 +11,12 @@ include $(INCLUDE_DIR)/kernel.mk ...@@ -11,12 +11,12 @@ include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=wireguard PKG_NAME:=wireguard
PKG_VERSION:=0.0.20181218 PKG_VERSION:=0.0.20191012
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE:=WireGuard-$(PKG_VERSION).tar.xz PKG_SOURCE:=WireGuard-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://git.zx2c4.com/WireGuard/snapshot/ PKG_SOURCE_URL:=https://git.zx2c4.com/WireGuard/snapshot/
PKG_HASH:=2e9f86acefa49dbfb7fa6f5e10d543f1885a2d5460cd5e102696901107675735 PKG_HASH:=93573193c9c1c22fde31eb1729ad428ca39da77a603a3d81561a9816ccecfa8e
PKG_LICENSE:=GPL-2.0 Apache-2.0 PKG_LICENSE:=GPL-2.0 Apache-2.0
PKG_LICENSE_FILES:=COPYING PKG_LICENSE_FILES:=COPYING
......
...@@ -2,197 +2,184 @@ ...@@ -2,197 +2,184 @@
# Copyright 2016-2017 Dan Luedtke <mail@danrl.com> # Copyright 2016-2017 Dan Luedtke <mail@danrl.com>
# Licensed to the public under the Apache License 2.0. # Licensed to the public under the Apache License 2.0.
WG=/usr/bin/wg WG=/usr/bin/wg
if [ ! -x $WG ]; then if [ ! -x $WG ]; then
logger -t "wireguard" "error: missing wireguard-tools (${WG})" logger -t "wireguard" "error: missing wireguard-tools (${WG})"
exit 0 exit 0
fi fi
[ -n "$INCLUDE_ONLY" ] || { [ -n "$INCLUDE_ONLY" ] || {
. /lib/functions.sh . /lib/functions.sh
. ../netifd-proto.sh . ../netifd-proto.sh
init_proto "$@" init_proto "$@"
} }
proto_wireguard_init_config() { proto_wireguard_init_config() {
proto_config_add_string "private_key" proto_config_add_string "private_key"
proto_config_add_int "listen_port" proto_config_add_int "listen_port"
proto_config_add_int "mtu" proto_config_add_int "mtu"
proto_config_add_string "fwmark" proto_config_add_string "fwmark"
available=1 available=1
no_proto_task=1 no_proto_task=1
} }
proto_wireguard_setup_peer() { proto_wireguard_setup_peer() {
local peer_config="$1" local peer_config="$1"
local public_key local public_key
local preshared_key local preshared_key
local allowed_ips local allowed_ips
local route_allowed_ips local route_allowed_ips
local endpoint_host local endpoint_host
local endpoint_port local endpoint_port
local persistent_keepalive local persistent_keepalive
config_get public_key "${peer_config}" "public_key" config_get public_key "${peer_config}" "public_key"
config_get preshared_key "${peer_config}" "preshared_key" config_get preshared_key "${peer_config}" "preshared_key"
config_get allowed_ips "${peer_config}" "allowed_ips" config_get allowed_ips "${peer_config}" "allowed_ips"
config_get_bool route_allowed_ips "${peer_config}" "route_allowed_ips" 0 config_get_bool route_allowed_ips "${peer_config}" "route_allowed_ips" 0
config_get endpoint_host "${peer_config}" "endpoint_host" config_get endpoint_host "${peer_config}" "endpoint_host"
config_get endpoint_port "${peer_config}" "endpoint_port" config_get endpoint_port "${peer_config}" "endpoint_port"
config_get persistent_keepalive "${peer_config}" "persistent_keepalive" config_get persistent_keepalive "${peer_config}" "persistent_keepalive"
# peer configuration echo "[Peer]" >> "${wg_cfg}"
echo "[Peer]" >> "${wg_cfg}" echo "PublicKey=${public_key}" >> "${wg_cfg}"
echo "PublicKey=${public_key}" >> "${wg_cfg}" if [ "${preshared_key}" ]; then
if [ "${preshared_key}" ]; then echo "PresharedKey=${preshared_key}" >> "${wg_cfg}"
echo "PresharedKey=${preshared_key}" >> "${wg_cfg}" fi
fi for allowed_ip in $allowed_ips; do
for allowed_ip in $allowed_ips; do echo "AllowedIPs=${allowed_ip}" >> "${wg_cfg}"
echo "AllowedIPs=${allowed_ip}" >> "${wg_cfg}" done
done if [ "${endpoint_host}" ]; then
if [ "${endpoint_host}" ]; then case "${endpoint_host}" in
case "${endpoint_host}" in *:*)
*:*) endpoint="[${endpoint_host}]"
endpoint="[${endpoint_host}]" ;;
;; *)
*) endpoint="${endpoint_host}"
endpoint="${endpoint_host}" ;;
;; esac
esac if [ "${endpoint_port}" ]; then
if [ "${endpoint_port}" ]; then endpoint="${endpoint}:${endpoint_port}"
endpoint="${endpoint}:${endpoint_port}" else
else endpoint="${endpoint}:51820"
endpoint="${endpoint}:51820" fi
fi echo "Endpoint=${endpoint}" >> "${wg_cfg}"
echo "Endpoint=${endpoint}" >> "${wg_cfg}" fi
fi if [ "${persistent_keepalive}" ]; then
if [ "${persistent_keepalive}" ]; then echo "PersistentKeepalive=${persistent_keepalive}" >> "${wg_cfg}"
echo "PersistentKeepalive=${persistent_keepalive}" >> "${wg_cfg}" fi
fi
if [ ${route_allowed_ips} -ne 0 ]; then
# add routes for allowed ips for allowed_ip in ${allowed_ips}; do
if [ ${route_allowed_ips} -ne 0 ]; then case "${allowed_ip}" in
for allowed_ip in ${allowed_ips}; do *:*/*)
case "${allowed_ip}" in proto_add_ipv6_route "${allowed_ip%%/*}" "${allowed_ip##*/}"
*:*/*) ;;
proto_add_ipv6_route "${allowed_ip%%/*}" "${allowed_ip##*/}" *.*/*)
;; proto_add_ipv4_route "${allowed_ip%%/*}" "${allowed_ip##*/}"
*.*/*) ;;
proto_add_ipv4_route "${allowed_ip%%/*}" "${allowed_ip##*/}" *:*)
;; proto_add_ipv6_route "${allowed_ip%%/*}" "128"
*:*) ;;
proto_add_ipv6_route "${allowed_ip%%/*}" "128" *.*)
;; proto_add_ipv4_route "${allowed_ip%%/*}" "32"
*.*) ;;
proto_add_ipv4_route "${allowed_ip%%/*}" "32" esac
;; done
esac fi
done
fi
} }
proto_wireguard_setup() { proto_wireguard_setup() {
local config="$1" local config="$1"
local wg_dir="/tmp/wireguard" local wg_dir="/tmp/wireguard"
local wg_cfg="${wg_dir}/${config}" local wg_cfg="${wg_dir}/${config}"
local private_key local private_key
local listen_port local listen_port
local mtu local mtu
# load configuration config_load network
config_load network config_get private_key "${config}" "private_key"
config_get private_key "${config}" "private_key" config_get listen_port "${config}" "listen_port"
config_get listen_port "${config}" "listen_port" config_get addresses "${config}" "addresses"
config_get addresses "${config}" "addresses" config_get mtu "${config}" "mtu"
config_get mtu "${config}" "mtu" config_get fwmark "${config}" "fwmark"
config_get fwmark "${config}" "fwmark" config_get ip6prefix "${config}" "ip6prefix"
config_get ip6prefix "${config}" "ip6prefix" config_get nohostroute "${config}" "nohostroute"
# create interface ip link del dev "${config}" 2>/dev/null
ip link del dev "${config}" 2>/dev/null ip link add dev "${config}" type wireguard
ip link add dev "${config}" type wireguard
if [ "${mtu}" ]; then
if [ "${mtu}" ]; then ip link set mtu "${mtu}" dev "${config}"
ip link set mtu "${mtu}" dev "${config}" fi
fi
proto_init_update "${config}" 1
proto_init_update "${config}" 1
umask 077
# generate configuration file mkdir -p "${wg_dir}"
umask 077 echo "[Interface]" > "${wg_cfg}"
mkdir -p "${wg_dir}" echo "PrivateKey=${private_key}" >> "${wg_cfg}"
echo "[Interface]" > "${wg_cfg}" if [ "${listen_port}" ]; then
echo "PrivateKey=${private_key}" >> "${wg_cfg}" echo "ListenPort=${listen_port}" >> "${wg_cfg}"
if [ "${listen_port}" ]; then fi
echo "ListenPort=${listen_port}" >> "${wg_cfg}" if [ "${fwmark}" ]; then
fi echo "FwMark=${fwmark}" >> "${wg_cfg}"
if [ "${fwmark}" ]; then fi
echo "FwMark=${fwmark}" >> "${wg_cfg}" config_foreach proto_wireguard_setup_peer "wireguard_${config}"
fi
config_foreach proto_wireguard_setup_peer "wireguard_${config}" # apply configuration file
${WG} setconf ${config} "${wg_cfg}"
# apply configuration file WG_RETURN=$?
${WG} setconf ${config} "${wg_cfg}"
WG_RETURN=$? rm -f "${wg_cfg}"
# delete configuration file if [ ${WG_RETURN} -ne 0 ]; then
rm -f "${wg_cfg}" sleep 5
proto_setup_failed "${config}"
# check status exit 1
if [ ${WG_RETURN} -ne 0 ]; then fi
sleep 5
proto_setup_failed "${config}" for address in ${addresses}; do
exit 1 case "${address}" in
fi *:*/*)
proto_add_ipv6_address "${address%%/*}" "${address##*/}"
# add ip addresses ;;
for address in ${addresses}; do *.*/*)
case "${address}" in proto_add_ipv4_address "${address%%/*}" "${address##*/}"
*:*/*) ;;
proto_add_ipv6_address "${address%%/*}" "${address##*/}" *:*)
;; proto_add_ipv6_address "${address%%/*}" "128"
*.*/*) ;;
proto_add_ipv4_address "${address%%/*}" "${address##*/}" *.*)
;; proto_add_ipv4_address "${address%%/*}" "32"
*:*) ;;
proto_add_ipv6_address "${address%%/*}" "128" esac
;; done
*.*)
proto_add_ipv4_address "${address%%/*}" "32" for prefix in ${ip6prefix}; do
;; proto_add_ipv6_prefix "$prefix"
esac done
done
# endpoint dependency
# support ip6 prefixes if [ "${nohostroute}" != "1" ]; then
for prefix in ${ip6prefix}; do wg show "${config}" endpoints | \
proto_add_ipv6_prefix "$prefix" sed -E 's/\[?([0-9.:a-f]+)\]?:([0-9]+)/\1 \2/' | \
done while IFS=$'\t ' read -r key address port; do
[ -n "${port}" ] || continue
# endpoint dependency proto_add_host_dependency "${config}" "${address}"
wg show "${config}" endpoints | \ done
sed -E 's/\[?([0-9.:a-f]+)\]?:([0-9]+)/\1 \2/' | \ fi
while IFS=$'\t ' read -r key address port; do
[ -n "${port}" ] || continue proto_send_update "${config}"
proto_add_host_dependency "${config}" "${address}"
done
proto_send_update "${config}"
} }
proto_wireguard_teardown() { proto_wireguard_teardown() {
local config="$1" local config="$1"
ip link del dev "${config}" >/dev/null 2>&1 ip link del dev "${config}" >/dev/null 2>&1
} }
[ -n "$INCLUDE_ONLY" ] || { [ -n "$INCLUDE_ONLY" ] || {
add_protocol wireguard add_protocol wireguard
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册