mirror of
https://github.com/openwrt/packages.git
synced 2025-12-21 17:04:32 +04:00
xl2tp: add PPP unnumbered support to proto handler
Adds the PPP unnumbered support from openwrt commit 48a95ef ("ppp :
Unnumbered support") to the xl2tp proto handler.
48a95eff38
Signed-off-by: Martin Schiller <ms@dev.tdt.de>
This commit is contained in:
committed by
Hannu Nyman
parent
495e4e9287
commit
21019d063d
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
|||||||
|
|
||||||
PKG_NAME:=xl2tpd
|
PKG_NAME:=xl2tpd
|
||||||
PKG_VERSION:=1.3.18
|
PKG_VERSION:=1.3.18
|
||||||
PKG_RELEASE:=2
|
PKG_RELEASE:=3
|
||||||
PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
|
PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
|
||||||
PKG_LICENSE:=GPL-2.0
|
PKG_LICENSE:=GPL-2.0
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|||||||
@@ -4,10 +4,35 @@
|
|||||||
|
|
||||||
[ -n "$INCLUDE_ONLY" ] || {
|
[ -n "$INCLUDE_ONLY" ] || {
|
||||||
. /lib/functions.sh
|
. /lib/functions.sh
|
||||||
|
. /lib/functions/network.sh
|
||||||
. ../netifd-proto.sh
|
. ../netifd-proto.sh
|
||||||
init_proto "$@"
|
init_proto "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
proto_l2tp_select_ipaddr()
|
||||||
|
{
|
||||||
|
local subnets=$1
|
||||||
|
local res
|
||||||
|
local res_mask
|
||||||
|
|
||||||
|
for subnet in $subnets; do
|
||||||
|
local addr="${subnet%%/*}"
|
||||||
|
local mask="${subnet#*/}"
|
||||||
|
|
||||||
|
if [ -n "$res_mask" -a "$mask" != 32 ]; then
|
||||||
|
[ "$mask" -gt "$res_mask" ] || [ "$res_mask" = 32 ] && {
|
||||||
|
res="$addr"
|
||||||
|
res_mask="$mask"
|
||||||
|
}
|
||||||
|
elif [ -z "$res_mask" ]; then
|
||||||
|
res="$addr"
|
||||||
|
res_mask="$mask"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "$res"
|
||||||
|
}
|
||||||
|
|
||||||
proto_l2tp_init_config() {
|
proto_l2tp_init_config() {
|
||||||
proto_config_add_string "username"
|
proto_config_add_string "username"
|
||||||
proto_config_add_string "password"
|
proto_config_add_string "password"
|
||||||
@@ -18,6 +43,7 @@ proto_l2tp_init_config() {
|
|||||||
proto_config_add_int "checkup_interval"
|
proto_config_add_int "checkup_interval"
|
||||||
proto_config_add_string "server"
|
proto_config_add_string "server"
|
||||||
proto_config_add_string "hostname"
|
proto_config_add_string "hostname"
|
||||||
|
proto_config_add_string "unnumbered"
|
||||||
available=1
|
available=1
|
||||||
no_device=1
|
no_device=1
|
||||||
no_proto_task=1
|
no_proto_task=1
|
||||||
@@ -60,8 +86,8 @@ proto_l2tp_setup() {
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local ipv6 keepalive username password pppd_options mtu
|
local ipv6 keepalive username password pppd_options mtu unnumbered localip
|
||||||
json_get_vars ipv6 keepalive username password pppd_options mtu
|
json_get_vars ipv6 keepalive username password pppd_options mtu unnumbered
|
||||||
[ "$ipv6" = 1 ] || ipv6=""
|
[ "$ipv6" = 1 ] || ipv6=""
|
||||||
|
|
||||||
local interval="${keepalive##*[, ]}"
|
local interval="${keepalive##*[, ]}"
|
||||||
@@ -72,6 +98,18 @@ proto_l2tp_setup() {
|
|||||||
ipv6="${ipv6:++ipv6}"
|
ipv6="${ipv6:++ipv6}"
|
||||||
mtu="${mtu:+mtu $mtu mru $mtu}"
|
mtu="${mtu:+mtu $mtu mru $mtu}"
|
||||||
|
|
||||||
|
[ -n "$unnumbered" ] && {
|
||||||
|
local subnets
|
||||||
|
( proto_add_host_dependency "$interface" "" "$unnumbered" )
|
||||||
|
network_get_subnets subnets "$unnumbered"
|
||||||
|
localip=$(proto_l2tp_select_ipaddr "$subnets")
|
||||||
|
[ -n "$localip" ] || {
|
||||||
|
proto_block_restart "$interface"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
localip="${localip:+$localip:}"
|
||||||
|
}
|
||||||
|
|
||||||
mkdir -p /tmp/l2tp
|
mkdir -p /tmp/l2tp
|
||||||
cat <<EOF >"$optfile"
|
cat <<EOF >"$optfile"
|
||||||
usepeerdns
|
usepeerdns
|
||||||
@@ -88,6 +126,7 @@ $keepalive
|
|||||||
$username
|
$username
|
||||||
$ipv6
|
$ipv6
|
||||||
$mtu
|
$mtu
|
||||||
|
$localip
|
||||||
$pppd_options
|
$pppd_options
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user