ppp: add sourcefilter option support
[openwrt/staging/linusw.git] / package / network / services / ppp / files / ppp.sh
index 6d3a8e29ffae218317c94ec4dcd11544a66eddd7..074c1f12c8c0c1c2d89f14fd34174ee29a8f6e6d 100755 (executable)
@@ -82,13 +82,14 @@ ppp_generic_init_config() {
        proto_config_add_boolean persist
        proto_config_add_int maxfail
        proto_config_add_int holdoff
+       proto_config_add_boolean sourcefilter
 }
 
 ppp_generic_setup() {
        local config="$1"; shift
        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
 
@@ -133,6 +134,7 @@ ppp_generic_setup() {
        [ "${keepalive_adaptive:-1}" -lt 1 ] && lcp_adaptive=""
        [ -n "$connect" ] || json_get_var connect connect
        [ -n "$disconnect" ] || json_get_var disconnect disconnect
+       [ "$sourcefilter" = "0" ] || sourcefilter=""
 
        proto_run_command "$config" /usr/sbin/pppd \
                nodetach ipparam "$config" \
@@ -143,6 +145,7 @@ ppp_generic_setup() {
                ${autoipv6:+set AUTOIPV6=1} \
                ${ip6table:+set IP6TABLE=$ip6table} \
                ${peerdns:+set PEERDNS=$peerdns} \
+               ${sourcefilter:+set NOSOURCEFILTER=1} \
                nodefaultroute \
                usepeerdns \
                $demand $persist maxfail $maxfail \