ppp: add sourcefilter option support

This make source based IPv6 routing option available for
ppp/pptp/pppoe/pppoa

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
This commit is contained in:
Chen Minqiang 2024-01-22 22:35:41 +08:00 committed by Chuanhong Guo
parent 680f8738d0
commit 3416144418
2 changed files with 5 additions and 1 deletions

View File

@ -27,6 +27,7 @@ if [ -n "$AUTOIPV6" ]; then
[ -n "$EXTENDPREFIX" ] && json_add_string extendprefix 1 [ -n "$EXTENDPREFIX" ] && json_add_string extendprefix 1
[ -n "$IP6TABLE" ] && json_add_string ip6table $IP6TABLE [ -n "$IP6TABLE" ] && json_add_string ip6table $IP6TABLE
[ -n "$PEERDNS" ] && json_add_boolean peerdns $PEERDNS [ -n "$PEERDNS" ] && json_add_boolean peerdns $PEERDNS
[ "$NOSOURCEFILTER" = "1" ] && json_add_boolean sourcefilter "0"
json_close_object json_close_object
ubus call network add_dynamic "$(json_dump)" ubus call network add_dynamic "$(json_dump)"
fi fi

View File

@ -82,13 +82,14 @@ ppp_generic_init_config() {
proto_config_add_boolean persist proto_config_add_boolean persist
proto_config_add_int maxfail proto_config_add_int maxfail
proto_config_add_int holdoff proto_config_add_int holdoff
proto_config_add_boolean sourcefilter
} }
ppp_generic_setup() { ppp_generic_setup() {
local config="$1"; shift local config="$1"; shift
local localip local localip
json_get_vars ip6table demand keepalive keepalive_adaptive username password pppd_options pppname unnumbered persist maxfail holdoff peerdns json_get_vars ip6table demand keepalive keepalive_adaptive username password pppd_options pppname unnumbered persist maxfail holdoff peerdns sourcefilter
[ ! -e /proc/sys/net/ipv6 ] && ipv6=0 || json_get_var ipv6 ipv6 [ ! -e /proc/sys/net/ipv6 ] && ipv6=0 || json_get_var ipv6 ipv6
@ -133,6 +134,7 @@ ppp_generic_setup() {
[ "${keepalive_adaptive:-1}" -lt 1 ] && lcp_adaptive="" [ "${keepalive_adaptive:-1}" -lt 1 ] && lcp_adaptive=""
[ -n "$connect" ] || json_get_var connect connect [ -n "$connect" ] || json_get_var connect connect
[ -n "$disconnect" ] || json_get_var disconnect disconnect [ -n "$disconnect" ] || json_get_var disconnect disconnect
[ "$sourcefilter" = "0" ] || sourcefilter=""
proto_run_command "$config" /usr/sbin/pppd \ proto_run_command "$config" /usr/sbin/pppd \
nodetach ipparam "$config" \ nodetach ipparam "$config" \
@ -143,6 +145,7 @@ ppp_generic_setup() {
${autoipv6:+set AUTOIPV6=1} \ ${autoipv6:+set AUTOIPV6=1} \
${ip6table:+set IP6TABLE=$ip6table} \ ${ip6table:+set IP6TABLE=$ip6table} \
${peerdns:+set PEERDNS=$peerdns} \ ${peerdns:+set PEERDNS=$peerdns} \
${sourcefilter:+set NOSOURCEFILTER=1} \
nodefaultroute \ nodefaultroute \
usepeerdns \ usepeerdns \
$demand $persist maxfail $maxfail \ $demand $persist maxfail $maxfail \