6in4: Support fqdn as remote tunnel endpoint

Same as fqdn support in GRE (commit a79f3d11b3) and IPIP (commit 311682905e)

Signed-off-by: Aleksandr V. Piskunov <aleksandr.v.piskunov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/15961
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
Aleksandr V. Piskunov 2024-07-16 16:44:35 +03:00 committed by Hauke Mehrtens
parent cdb535ac32
commit 6b5aea7429
2 changed files with 15 additions and 2 deletions

View File

@ -16,7 +16,7 @@ include $(INCLUDE_DIR)/package.mk
define Package/6in4 define Package/6in4
SECTION:=net SECTION:=net
CATEGORY:=Network CATEGORY:=Network
DEPENDS:=@IPV6 +kmod-sit +uclient-fetch DEPENDS:=@IPV6 +kmod-sit +uclient-fetch +resolveip
TITLE:=IPv6-in-IPv4 configuration support TITLE:=IPv6-in-IPv4 configuration support
MAINTAINER:=Jo-Philipp Wich <jo@mein.io> MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
PKGARCH:=all PKGARCH:=all

View File

@ -44,6 +44,7 @@ proto_6in4_setup() {
local cfg="$1" local cfg="$1"
local iface="$2" local iface="$2"
local link="6in4-$cfg" local link="6in4-$cfg"
local remoteip
local mtu ttl tos ipaddr peeraddr ip6addr ip6prefix ip6prefixes tunlink tunnelid username password updatekey device local mtu ttl tos ipaddr peeraddr ip6addr ip6prefix ip6prefixes tunlink tunnelid username password updatekey device
json_get_vars mtu ttl tos ipaddr peeraddr ip6addr tunlink tunnelid username password updatekey device json_get_vars mtu ttl tos ipaddr peeraddr ip6addr tunlink tunnelid username password updatekey device
@ -52,11 +53,23 @@ proto_6in4_setup() {
[ -n "$device" ] && link="$device" [ -n "$device" ] && link="$device"
[ -z "$peeraddr" ] && { [ -z "$peeraddr" ] && {
proto_notify_error "$cfg" "MISSING_ADDRESS" proto_notify_error "$cfg" "MISSING_PEER_ADDRESS"
proto_block_restart "$cfg" proto_block_restart "$cfg"
return return
} }
remoteip=$(resolveip -t 10 -4 "$peeraddr")
if [ -z "$remoteip" ]; then
proto_notify_error "$cfg" "PEER_RESOLVE_FAIL"
return
fi
for ip in $remoteip; do
peeraddr=$ip
break
done
( proto_add_host_dependency "$cfg" "$peeraddr" "$tunlink" ) ( proto_add_host_dependency "$cfg" "$peeraddr" "$tunlink" )
[ -z "$ipaddr" ] && { [ -z "$ipaddr" ] && {