Diff
checker
Text
Text
Images
Documents
Excel
Folders
Legal
Enterprise
Desktop
Pricing
Sign in
Download Diffchecker Desktop
Compare text
Find the difference between two text files
Tools
History
Real-time editor
Hide whitespace changes
Hide unchanged lines
Disable line wrap
Layout
Split
Unified
Diff precision
Smart
Word
Char
Text styles
Change appearance
Syntax highlighting
Choose syntax
Ignore
Transform text
Go to first change
Edit input
Diffchecker Desktop
The most secure way to run Diffchecker. Get the Diffchecker Desktop app: your diffs never leave your computer!
Get Desktop
Untitled diff
Created
8 years ago
Diff never expires
Clear
Export
Share
Explain
6 removals
Lines
Total
Removed
Characters
Total
Removed
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
325 lines
Copy
1 addition
Lines
Total
Added
Characters
Total
Added
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
320 lines
Copy
#!/bin/sh
#!/bin/sh
[ -x /usr/sbin/pppd ] || exit 0
[ -x /usr/sbin/pppd ] || exit 0
[ -n "$INCLUDE_ONLY" ] || {
[ -n "$INCLUDE_ONLY" ] || {
. /lib/functions.sh
. /lib/functions.sh
. /lib/functions/network.sh
. /lib/functions/network.sh
. ../netifd-proto.sh
. ../netifd-proto.sh
init_proto "$@"
init_proto "$@"
}
}
ppp_select_ipaddr()
ppp_select_ipaddr()
{
{
local subnets=$1
local subnets=$1
local res
local res
local res_mask
local res_mask
for subnet in $subnets; do
for subnet in $subnets; do
local addr="${subnet%%/*}"
local addr="${subnet%%/*}"
local mask="${subnet#*/}"
local mask="${subnet#*/}"
if [ -n "$res_mask" -a "$mask" != 32 ]; then
if [ -n "$res_mask" -a "$mask" != 32 ]; then
[ "$mask" -gt "$res_mask" ] || [ "$res_mask" = 32 ] && {
[ "$mask" -gt "$res_mask" ] || [ "$res_mask" = 32 ] && {
res="$addr"
res="$addr"
res_mask="$mask"
res_mask="$mask"
}
}
elif [ -z "$res_mask" ]; then
elif [ -z "$res_mask" ]; then
res="$addr"
res="$addr"
res_mask="$mask"
res_mask="$mask"
fi
fi
done
done
echo "$res"
echo "$res"
}
}
ppp_exitcode_tostring()
ppp_exitcode_tostring()
{
{
local errorcode=$1
local errorcode=$1
[ -n "$errorcode" ] || errorcode=5
[ -n "$errorcode" ] || errorcode=5
case "$errorcode" in
case "$errorcode" in
0) echo "OK" ;;
0) echo "OK" ;;
1) echo "FATAL_ERROR" ;;
1) echo "FATAL_ERROR" ;;
2) echo "OPTION_ERROR" ;;
2) echo "OPTION_ERROR" ;;
3) echo "NOT_ROOT" ;;
3) echo "NOT_ROOT" ;;
4) echo "NO_KERNEL_SUPPORT" ;;
4) echo "NO_KERNEL_SUPPORT" ;;
5) echo "USER_REQUEST" ;;
5) echo "USER_REQUEST" ;;
6) echo "LOCK_FAILED" ;;
6) echo "LOCK_FAILED" ;;
7) echo "OPEN_FAILED" ;;
7) echo "OPEN_FAILED" ;;
8) echo "CONNECT_FAILED" ;;
8) echo "CONNECT_FAILED" ;;
9) echo "PTYCMD_FAILED" ;;
9) echo "PTYCMD_FAILED" ;;
10) echo "NEGOTIATION_FAILED" ;;
10) echo "NEGOTIATION_FAILED" ;;
11) echo "PEER_AUTH_FAILED" ;;
11) echo "PEER_AUTH_FAILED" ;;
12) echo "IDLE_TIMEOUT" ;;
12) echo "IDLE_TIMEOUT" ;;
13) echo "CONNECT_TIME" ;;
13) echo "CONNECT_TIME" ;;
14) echo "CALLBACK" ;;
14) echo "CALLBACK" ;;
15) echo "PEER_DEAD" ;;
15) echo "PEER_DEAD" ;;
16) echo "HANGUP" ;;
16) echo "HANGUP" ;;
17) echo "LOOPBACK" ;;
17) echo "LOOPBACK" ;;
18) echo "INIT_FAILED" ;;
18) echo "INIT_FAILED" ;;
19) echo "AUTH_TOPEER_FAILED" ;;
19) echo "AUTH_TOPEER_FAILED" ;;
20) echo "TRAFFIC_LIMIT" ;;
20) echo "TRAFFIC_LIMIT" ;;
21) echo "CNID_AUTH_FAILED";;
21) echo "CNID_AUTH_FAILED";;
*) echo "UNKNOWN_ERROR" ;;
*) echo "UNKNOWN_ERROR" ;;
esac
esac
}
}
ppp_generic_init_config() {
ppp_generic_init_config() {
proto_config_add_string username
proto_config_add_string username
proto_config_add_string password
proto_config_add_string password
proto_config_add_string keepalive
proto_config_add_string keepalive
proto_config_add_boolean keepalive_adaptive
proto_config_add_boolean keepalive_adaptive
proto_config_add_int demand
proto_config_add_int demand
proto_config_add_string pppd_options
proto_config_add_string pppd_options
proto_config_add_string 'connect:file'
proto_config_add_string 'connect:file'
proto_config_add_string 'disconnect:file'
proto_config_add_string 'disconnect:file'
proto_config_add_string ipv6
proto_config_add_string ipv6
proto_config_add_boolean authfail
proto_config_add_boolean authfail
proto_config_add_int mtu
proto_config_add_int mtu
proto_config_add_string pppname
proto_config_add_string pppname
proto_config_add_string unnumbered
proto_config_add_string unnumbered
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
}
}
ppp_generic_setup() {
ppp_generic_setup() {
local config="$1"; shift
local config="$1"; shift
local localip
local localip
json_get_vars ipv6 ip6table demand keepalive keepalive_adaptive username password pppd_options pppname unnumbered persist maxfail holdoff peerdns
json_get_vars ipv6 ip6table demand keepalive keepalive_adaptive username password pppd_options pppname unnumbered persist maxfail holdoff peerdns
if [ "$ipv6" = 0 ]; then
if [ "$ipv6" = 0 ]; then
ipv6=""
ipv6=""
elif [ -z "$ipv6" -o "$ipv6" = auto ]; then
elif [ -z "$ipv6" -o "$ipv6" = auto ]; then
ipv6=1
ipv6=1
autoipv6=1
autoipv6=1
fi
fi
if [ "${demand:-0}" -gt 0 ]; then
if [ "${demand:-0}" -gt 0 ]; then
demand="precompiled-active-filter /etc/ppp/filter demand idle $demand"
demand="precompiled-active-filter /etc/ppp/filter demand idle $demand"
else
else
demand=""
demand=""
fi
fi
if [ -n "$persist" ]; then
if [ -n "$persist" ]; then
[ "${persist}" -lt 1 ] && persist="nopersist" || persist="persist"
[ "${persist}" -lt 1 ] && persist="nopersist" || persist="persist"
fi
fi
if [ -z "$maxfail" ]; then
if [ -z "$maxfail" ]; then
[ "$persist" = "persist" ] && maxfail=0 || maxfail=1
[ "$persist" = "persist" ] && maxfail=0 || maxfail=1
fi
fi
[ -n "$mtu" ] || json_get_var mtu mtu
[ -n "$mtu" ] || json_get_var mtu mtu
[ -n "$pppname" ] || pppname="${proto:-ppp}-$config"
[ -n "$pppname" ] || pppname="${proto:-ppp}-$config"
[ -n "$unnumbered" ] && {
[ -n "$unnumbered" ] && {
local subnets
local subnets
( proto_add_host_dependency "$config" "" "$unnumbered" )
( proto_add_host_dependency "$config" "" "$unnumbered" )
network_get_subnets subnets "$unnumbered"
network_get_subnets subnets "$unnumbered"
localip=$(ppp_select_ipaddr "$subnets")
localip=$(ppp_select_ipaddr "$subnets")
[ -n "$localip" ] || {
[ -n "$localip" ] || {
proto_block_restart "$config"
proto_block_restart "$config"
return
return
}
}
}
}
local lcp_failure="${keepalive%%[, ]*}"
local lcp_failure="${keepalive%%[, ]*}"
local lcp_interval="${keepalive##*[, ]}"
local lcp_interval="${keepalive##*[, ]}"
local lcp_adaptive="lcp-echo-adaptive"
local lcp_adaptive="lcp-echo-adaptive"
[ "${lcp_failure:-0}" -lt 1 ] && lcp_failure=""
[ "${lcp_failure:-0}" -lt 1 ] && lcp_failure=""
[ "$lcp_interval" != "$keepalive" ] || lcp_interval=5
[ "$lcp_interval" != "$keepalive" ] || lcp_interval=5
[ "${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
proto_run_command "$config" /usr/sbin/pppd \
proto_run_command "$config" /usr/sbin/pppd \
nodetach ipparam "$config" \
nodetach ipparam "$config" \
ifname "$pppname" \
ifname "$pppname" \
${localip:+$localip:} \
${localip:+$localip:} \
${lcp_failure:+lcp-echo-interval $lcp_interval lcp-echo-failure $lcp_failure $lcp_adaptive} \
${lcp_failure:+lcp-echo-interval $lcp_interval lcp-echo-failure $lcp_failure $lcp_adaptive} \
Copy
Copied
Copy
Copied
${ipv6:++ipv6} \
${autoipv6:+set AUTOIPV6=1} \
${ip6table:+set IP6TABLE=$ip6table} \
${peerdns:+set PEERDNS=$peerdns} \
${peerdns:+set PEERDNS=$peerdns} \
nodefaultroute \
nodefaultroute \
Copy
Copied
Copy
Copied
usepeerdns \
$demand $persist maxfail $maxfail \
$demand $persist maxfail $maxfail \
${holdoff:+holdoff "$holdoff"} \
${holdoff:+holdoff "$holdoff"} \
${username:+user "$username" password "$password"} \
${username:+user "$username" password "$password"} \
${connect:+connect "$connect"} \
${connect:+connect "$connect"} \
${disconnect:+disconnect "$disconnect"} \
${disconnect:+disconnect "$disconnect"} \
ip-up-script /lib/netifd/ppp-up \
ip-up-script /lib/netifd/ppp-up \
Copy
Copied
Copy
Copied
ipv6-up-script /lib/netifd/ppp6-up \
ip-down-script /lib/netifd/ppp-down \
ip-down-script /lib/netifd/ppp-down \
Copy
Copied
Copy
Copied
ipv6
-down-script /lib/netifd/ppp-down
\
no
ipv6
\
${mtu:+mtu $mtu mru $mtu} \
${mtu:+mtu $mtu mru $mtu} \
"$@" $pppd_options
"$@" $pppd_options
}
}
ppp_generic_teardown() {
ppp_generic_teardown() {
local interface="$1"
local interface="$1"
local errorstring=$(ppp_exitcode_tostring $ERROR)
local errorstring=$(ppp_exitcode_tostring $ERROR)
case "$ERROR" in
case "$ERROR" in
0)
0)
;;
;;
2)
2)
proto_notify_error "$interface" "$errorstring"
proto_notify_error "$interface" "$errorstring"
proto_block_restart "$interface"
proto_block_restart "$interface"
;;
;;
11|19)
11|19)
json_get_var authfail authfail
json_get_var authfail authfail
proto_notify_error "$interface" "$errorstring"
proto_notify_error "$interface" "$errorstring"
if [ "${authfail:-0}" -gt 0 ]; then
if [ "${authfail:-0}" -gt 0 ]; then
proto_block_restart "$interface"
proto_block_restart "$interface"
fi
fi
;;
;;
*)
*)
proto_notify_error "$interface" "$errorstring"
proto_notify_error "$interface" "$errorstring"
;;
;;
esac
esac
proto_kill_command "$interface"
proto_kill_command "$interface"
}
}
# PPP on serial device
# PPP on serial device
proto_ppp_init_config() {
proto_ppp_init_config() {
proto_config_add_string "device"
proto_config_add_string "device"
ppp_generic_init_config
ppp_generic_init_config
no_device=1
no_device=1
available=1
available=1
lasterror=1
lasterror=1
}
}
proto_ppp_setup() {
proto_ppp_setup() {
local config="$1"
local config="$1"
json_get_var device device
json_get_var device device
ppp_generic_setup "$config" "$device"
ppp_generic_setup "$config" "$device"
}
}
proto_ppp_teardown() {
proto_ppp_teardown() {
ppp_generic_teardown "$@"
ppp_generic_teardown "$@"
}
}
proto_pppoe_init_config() {
proto_pppoe_init_config() {
ppp_generic_init_config
ppp_generic_init_config
proto_config_add_string "ac"
proto_config_add_string "ac"
proto_config_add_string "service"
proto_config_add_string "service"
proto_config_add_string "host_uniq"
proto_config_add_string "host_uniq"
lasterror=1
lasterror=1
}
}
proto_pppoe_setup() {
proto_pppoe_setup() {
local config="$1"
local config="$1"
local iface="$2"
local iface="$2"
for module in slhc ppp_generic pppox pppoe; do
for module in slhc ppp_generic pppox pppoe; do
/sbin/insmod $module 2>&- >&-
/sbin/insmod $module 2>&- >&-
done
done
json_get_var mtu mtu
json_get_var mtu mtu
mtu="${mtu:-1492}"
mtu="${mtu:-1492}"
json_get_var ac ac
json_get_var ac ac
json_get_var service service
json_get_var service service
json_get_var host_uniq host_uniq
json_get_var host_uniq host_uniq
ppp_generic_setup "$config" \
ppp_generic_setup "$config" \
plugin rp-pppoe.so \
plugin rp-pppoe.so \
${ac:+rp_pppoe_ac "$ac"} \
${ac:+rp_pppoe_ac "$ac"} \
${service:+rp_pppoe_service "$service"} \
${service:+rp_pppoe_service "$service"} \
${host_uniq:+host-uniq "$host_uniq"} \
${host_uniq:+host-uniq "$host_uniq"} \
"nic-$iface"
"nic-$iface"
}
}
proto_pppoe_teardown() {
proto_pppoe_teardown() {
ppp_generic_teardown "$@"
ppp_generic_teardown "$@"
}
}
proto_pppoa_init_config() {
proto_pppoa_init_config() {
ppp_generic_init_config
ppp_generic_init_config
proto_config_add_int "atmdev"
proto_config_add_int "atmdev"
proto_config_add_int "vci"
proto_config_add_int "vci"
proto_config_add_int "vpi"
proto_config_add_int "vpi"
proto_config_add_string "encaps"
proto_config_add_string "encaps"
no_device=1
no_device=1
available=1
available=1
lasterror=1
lasterror=1
}
}
proto_pppoa_setup() {
proto_pppoa_setup() {
local config="$1"
local config="$1"
local iface="$2"
local iface="$2"
for module in slhc ppp_generic pppox pppoatm; do
for module in slhc ppp_generic pppox pppoatm; do
/sbin/insmod $module 2>&- >&-
/sbin/insmod $module 2>&- >&-
done
done
json_get_vars atmdev vci vpi encaps
json_get_vars atmdev vci vpi encaps
case "$encaps" in
case "$encaps" in
1|vc) encaps="vc-encaps" ;;
1|vc) encaps="vc-encaps" ;;
*) encaps="llc-encaps" ;;
*) encaps="llc-encaps" ;;
esac
esac
ppp_generic_setup "$config" \
ppp_generic_setup "$config" \
plugin pppoatm.so \
plugin pppoatm.so \
${atmdev:+$atmdev.}${vpi:-8}.${vci:-35} \
${atmdev:+$atmdev.}${vpi:-8}.${vci:-35} \
${encaps}
${encaps}
}
}
proto_pppoa_teardown() {
proto_pppoa_teardown() {
ppp_generic_teardown "$@"
ppp_generic_teardown "$@"
}
}
proto_pptp_init_config() {
proto_pptp_init_config() {
ppp_generic_init_config
ppp_generic_init_config
proto_config_add_string "server"
proto_config_add_string "server"
proto_config_add_string "interface"
proto_config_add_string "interface"
available=1
available=1
no_device=1
no_device=1
lasterror=1
lasterror=1
}
}
proto_pptp_setup() {
proto_pptp_setup() {
local config="$1"
local config="$1"
local iface="$2"
local iface="$2"
local ip serv_addr server interface
local ip serv_addr server interface
json_get_vars interface server
json_get_vars interface server
[ -n "$server" ] && {
[ -n "$server" ] && {
for ip in $(resolveip -t 5 "$server"); do
for ip in $(resolveip -t 5 "$server"); do
( proto_add_host_dependency "$config" "$ip" $interface )
( proto_add_host_dependency "$config" "$ip" $interface )
serv_addr=1
serv_addr=1
done
done
}
}
[ -n "$serv_addr" ] || {
[ -n "$serv_addr" ] || {
echo "Could not resolve server address"
echo "Could not resolve server address"
sleep 5
sleep 5
proto_setup_failed "$config"
proto_setup_failed "$config"
exit 1
exit 1
}
}
local load
local load
for module in slhc ppp_generic ppp_async ppp_mppe ip_gre gre pptp; do
for module in slhc ppp_generic ppp_async ppp_mppe ip_gre gre pptp; do
grep -q "^$module " /proc/modules && continue
grep -q "^$module " /proc/modules && continue
/sbin/insmod $module 2>&- >&-
/sbin/insmod $module 2>&- >&-
load=1
load=1
done
done
[ "$load" = "1" ] && sleep 1
[ "$load" = "1" ] && sleep 1
ppp_generic_setup "$config" \
ppp_generic_setup "$config" \
plugin pptp.so \
plugin pptp.so \
pptp_server $server \
pptp_server $server \
file /etc/ppp/options.pptp
file /etc/ppp/options.pptp
}
}
proto_pptp_teardown() {
proto_pptp_teardown() {
ppp_generic_teardown "$@"
ppp_generic_teardown "$@"
}
}
[ -n "$INCLUDE_ONLY" ] || {
[ -n "$INCLUDE_ONLY" ] || {
add_protocol ppp
add_protocol ppp
[ -f /usr/lib/pppd/*/rp-pppoe.so ] && add_protocol pppoe
[ -f /usr/lib/pppd/*/rp-pppoe.so ] && add_protocol pppoe
[ -f /usr/lib/pppd/*/pppoatm.so ] && add_protocol pppoa
[ -f /usr/lib/pppd/*/pppoatm.so ] && add_protocol pppoa
[ -f /usr/lib/pppd/*/pptp.so ] && add_protocol pptp
[ -f /usr/lib/pppd/*/pptp.so ] && add_protocol pptp
}
}
Saved diffs
Original text
Open file
#!/bin/sh [ -x /usr/sbin/pppd ] || exit 0 [ -n "$INCLUDE_ONLY" ] || { . /lib/functions.sh . /lib/functions/network.sh . ../netifd-proto.sh init_proto "$@" } ppp_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" } ppp_exitcode_tostring() { local errorcode=$1 [ -n "$errorcode" ] || errorcode=5 case "$errorcode" in 0) echo "OK" ;; 1) echo "FATAL_ERROR" ;; 2) echo "OPTION_ERROR" ;; 3) echo "NOT_ROOT" ;; 4) echo "NO_KERNEL_SUPPORT" ;; 5) echo "USER_REQUEST" ;; 6) echo "LOCK_FAILED" ;; 7) echo "OPEN_FAILED" ;; 8) echo "CONNECT_FAILED" ;; 9) echo "PTYCMD_FAILED" ;; 10) echo "NEGOTIATION_FAILED" ;; 11) echo "PEER_AUTH_FAILED" ;; 12) echo "IDLE_TIMEOUT" ;; 13) echo "CONNECT_TIME" ;; 14) echo "CALLBACK" ;; 15) echo "PEER_DEAD" ;; 16) echo "HANGUP" ;; 17) echo "LOOPBACK" ;; 18) echo "INIT_FAILED" ;; 19) echo "AUTH_TOPEER_FAILED" ;; 20) echo "TRAFFIC_LIMIT" ;; 21) echo "CNID_AUTH_FAILED";; *) echo "UNKNOWN_ERROR" ;; esac } ppp_generic_init_config() { proto_config_add_string username proto_config_add_string password proto_config_add_string keepalive proto_config_add_boolean keepalive_adaptive proto_config_add_int demand proto_config_add_string pppd_options proto_config_add_string 'connect:file' proto_config_add_string 'disconnect:file' proto_config_add_string ipv6 proto_config_add_boolean authfail proto_config_add_int mtu proto_config_add_string pppname proto_config_add_string unnumbered proto_config_add_boolean persist proto_config_add_int maxfail proto_config_add_int holdoff } ppp_generic_setup() { local config="$1"; shift local localip json_get_vars ipv6 ip6table demand keepalive keepalive_adaptive username password pppd_options pppname unnumbered persist maxfail holdoff peerdns if [ "$ipv6" = 0 ]; then ipv6="" elif [ -z "$ipv6" -o "$ipv6" = auto ]; then ipv6=1 autoipv6=1 fi if [ "${demand:-0}" -gt 0 ]; then demand="precompiled-active-filter /etc/ppp/filter demand idle $demand" else demand="" fi if [ -n "$persist" ]; then [ "${persist}" -lt 1 ] && persist="nopersist" || persist="persist" fi if [ -z "$maxfail" ]; then [ "$persist" = "persist" ] && maxfail=0 || maxfail=1 fi [ -n "$mtu" ] || json_get_var mtu mtu [ -n "$pppname" ] || pppname="${proto:-ppp}-$config" [ -n "$unnumbered" ] && { local subnets ( proto_add_host_dependency "$config" "" "$unnumbered" ) network_get_subnets subnets "$unnumbered" localip=$(ppp_select_ipaddr "$subnets") [ -n "$localip" ] || { proto_block_restart "$config" return } } local lcp_failure="${keepalive%%[, ]*}" local lcp_interval="${keepalive##*[, ]}" local lcp_adaptive="lcp-echo-adaptive" [ "${lcp_failure:-0}" -lt 1 ] && lcp_failure="" [ "$lcp_interval" != "$keepalive" ] || lcp_interval=5 [ "${keepalive_adaptive:-1}" -lt 1 ] && lcp_adaptive="" [ -n "$connect" ] || json_get_var connect connect [ -n "$disconnect" ] || json_get_var disconnect disconnect proto_run_command "$config" /usr/sbin/pppd \ nodetach ipparam "$config" \ ifname "$pppname" \ ${localip:+$localip:} \ ${lcp_failure:+lcp-echo-interval $lcp_interval lcp-echo-failure $lcp_failure $lcp_adaptive} \ ${ipv6:++ipv6} \ ${autoipv6:+set AUTOIPV6=1} \ ${ip6table:+set IP6TABLE=$ip6table} \ ${peerdns:+set PEERDNS=$peerdns} \ nodefaultroute \ usepeerdns \ $demand $persist maxfail $maxfail \ ${holdoff:+holdoff "$holdoff"} \ ${username:+user "$username" password "$password"} \ ${connect:+connect "$connect"} \ ${disconnect:+disconnect "$disconnect"} \ ip-up-script /lib/netifd/ppp-up \ ipv6-up-script /lib/netifd/ppp6-up \ ip-down-script /lib/netifd/ppp-down \ ipv6-down-script /lib/netifd/ppp-down \ ${mtu:+mtu $mtu mru $mtu} \ "$@" $pppd_options } ppp_generic_teardown() { local interface="$1" local errorstring=$(ppp_exitcode_tostring $ERROR) case "$ERROR" in 0) ;; 2) proto_notify_error "$interface" "$errorstring" proto_block_restart "$interface" ;; 11|19) json_get_var authfail authfail proto_notify_error "$interface" "$errorstring" if [ "${authfail:-0}" -gt 0 ]; then proto_block_restart "$interface" fi ;; *) proto_notify_error "$interface" "$errorstring" ;; esac proto_kill_command "$interface" } # PPP on serial device proto_ppp_init_config() { proto_config_add_string "device" ppp_generic_init_config no_device=1 available=1 lasterror=1 } proto_ppp_setup() { local config="$1" json_get_var device device ppp_generic_setup "$config" "$device" } proto_ppp_teardown() { ppp_generic_teardown "$@" } proto_pppoe_init_config() { ppp_generic_init_config proto_config_add_string "ac" proto_config_add_string "service" proto_config_add_string "host_uniq" lasterror=1 } proto_pppoe_setup() { local config="$1" local iface="$2" for module in slhc ppp_generic pppox pppoe; do /sbin/insmod $module 2>&- >&- done json_get_var mtu mtu mtu="${mtu:-1492}" json_get_var ac ac json_get_var service service json_get_var host_uniq host_uniq ppp_generic_setup "$config" \ plugin rp-pppoe.so \ ${ac:+rp_pppoe_ac "$ac"} \ ${service:+rp_pppoe_service "$service"} \ ${host_uniq:+host-uniq "$host_uniq"} \ "nic-$iface" } proto_pppoe_teardown() { ppp_generic_teardown "$@" } proto_pppoa_init_config() { ppp_generic_init_config proto_config_add_int "atmdev" proto_config_add_int "vci" proto_config_add_int "vpi" proto_config_add_string "encaps" no_device=1 available=1 lasterror=1 } proto_pppoa_setup() { local config="$1" local iface="$2" for module in slhc ppp_generic pppox pppoatm; do /sbin/insmod $module 2>&- >&- done json_get_vars atmdev vci vpi encaps case "$encaps" in 1|vc) encaps="vc-encaps" ;; *) encaps="llc-encaps" ;; esac ppp_generic_setup "$config" \ plugin pppoatm.so \ ${atmdev:+$atmdev.}${vpi:-8}.${vci:-35} \ ${encaps} } proto_pppoa_teardown() { ppp_generic_teardown "$@" } proto_pptp_init_config() { ppp_generic_init_config proto_config_add_string "server" proto_config_add_string "interface" available=1 no_device=1 lasterror=1 } proto_pptp_setup() { local config="$1" local iface="$2" local ip serv_addr server interface json_get_vars interface server [ -n "$server" ] && { for ip in $(resolveip -t 5 "$server"); do ( proto_add_host_dependency "$config" "$ip" $interface ) serv_addr=1 done } [ -n "$serv_addr" ] || { echo "Could not resolve server address" sleep 5 proto_setup_failed "$config" exit 1 } local load for module in slhc ppp_generic ppp_async ppp_mppe ip_gre gre pptp; do grep -q "^$module " /proc/modules && continue /sbin/insmod $module 2>&- >&- load=1 done [ "$load" = "1" ] && sleep 1 ppp_generic_setup "$config" \ plugin pptp.so \ pptp_server $server \ file /etc/ppp/options.pptp } proto_pptp_teardown() { ppp_generic_teardown "$@" } [ -n "$INCLUDE_ONLY" ] || { add_protocol ppp [ -f /usr/lib/pppd/*/rp-pppoe.so ] && add_protocol pppoe [ -f /usr/lib/pppd/*/pppoatm.so ] && add_protocol pppoa [ -f /usr/lib/pppd/*/pptp.so ] && add_protocol pptp }
Changed text
Open file
#!/bin/sh [ -x /usr/sbin/pppd ] || exit 0 [ -n "$INCLUDE_ONLY" ] || { . /lib/functions.sh . /lib/functions/network.sh . ../netifd-proto.sh init_proto "$@" } ppp_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" } ppp_exitcode_tostring() { local errorcode=$1 [ -n "$errorcode" ] || errorcode=5 case "$errorcode" in 0) echo "OK" ;; 1) echo "FATAL_ERROR" ;; 2) echo "OPTION_ERROR" ;; 3) echo "NOT_ROOT" ;; 4) echo "NO_KERNEL_SUPPORT" ;; 5) echo "USER_REQUEST" ;; 6) echo "LOCK_FAILED" ;; 7) echo "OPEN_FAILED" ;; 8) echo "CONNECT_FAILED" ;; 9) echo "PTYCMD_FAILED" ;; 10) echo "NEGOTIATION_FAILED" ;; 11) echo "PEER_AUTH_FAILED" ;; 12) echo "IDLE_TIMEOUT" ;; 13) echo "CONNECT_TIME" ;; 14) echo "CALLBACK" ;; 15) echo "PEER_DEAD" ;; 16) echo "HANGUP" ;; 17) echo "LOOPBACK" ;; 18) echo "INIT_FAILED" ;; 19) echo "AUTH_TOPEER_FAILED" ;; 20) echo "TRAFFIC_LIMIT" ;; 21) echo "CNID_AUTH_FAILED";; *) echo "UNKNOWN_ERROR" ;; esac } ppp_generic_init_config() { proto_config_add_string username proto_config_add_string password proto_config_add_string keepalive proto_config_add_boolean keepalive_adaptive proto_config_add_int demand proto_config_add_string pppd_options proto_config_add_string 'connect:file' proto_config_add_string 'disconnect:file' proto_config_add_string ipv6 proto_config_add_boolean authfail proto_config_add_int mtu proto_config_add_string pppname proto_config_add_string unnumbered proto_config_add_boolean persist proto_config_add_int maxfail proto_config_add_int holdoff } ppp_generic_setup() { local config="$1"; shift local localip json_get_vars ipv6 ip6table demand keepalive keepalive_adaptive username password pppd_options pppname unnumbered persist maxfail holdoff peerdns if [ "$ipv6" = 0 ]; then ipv6="" elif [ -z "$ipv6" -o "$ipv6" = auto ]; then ipv6=1 autoipv6=1 fi if [ "${demand:-0}" -gt 0 ]; then demand="precompiled-active-filter /etc/ppp/filter demand idle $demand" else demand="" fi if [ -n "$persist" ]; then [ "${persist}" -lt 1 ] && persist="nopersist" || persist="persist" fi if [ -z "$maxfail" ]; then [ "$persist" = "persist" ] && maxfail=0 || maxfail=1 fi [ -n "$mtu" ] || json_get_var mtu mtu [ -n "$pppname" ] || pppname="${proto:-ppp}-$config" [ -n "$unnumbered" ] && { local subnets ( proto_add_host_dependency "$config" "" "$unnumbered" ) network_get_subnets subnets "$unnumbered" localip=$(ppp_select_ipaddr "$subnets") [ -n "$localip" ] || { proto_block_restart "$config" return } } local lcp_failure="${keepalive%%[, ]*}" local lcp_interval="${keepalive##*[, ]}" local lcp_adaptive="lcp-echo-adaptive" [ "${lcp_failure:-0}" -lt 1 ] && lcp_failure="" [ "$lcp_interval" != "$keepalive" ] || lcp_interval=5 [ "${keepalive_adaptive:-1}" -lt 1 ] && lcp_adaptive="" [ -n "$connect" ] || json_get_var connect connect [ -n "$disconnect" ] || json_get_var disconnect disconnect proto_run_command "$config" /usr/sbin/pppd \ nodetach ipparam "$config" \ ifname "$pppname" \ ${localip:+$localip:} \ ${lcp_failure:+lcp-echo-interval $lcp_interval lcp-echo-failure $lcp_failure $lcp_adaptive} \ ${peerdns:+set PEERDNS=$peerdns} \ nodefaultroute \ $demand $persist maxfail $maxfail \ ${holdoff:+holdoff "$holdoff"} \ ${username:+user "$username" password "$password"} \ ${connect:+connect "$connect"} \ ${disconnect:+disconnect "$disconnect"} \ ip-up-script /lib/netifd/ppp-up \ ip-down-script /lib/netifd/ppp-down \ noipv6 \ ${mtu:+mtu $mtu mru $mtu} \ "$@" $pppd_options } ppp_generic_teardown() { local interface="$1" local errorstring=$(ppp_exitcode_tostring $ERROR) case "$ERROR" in 0) ;; 2) proto_notify_error "$interface" "$errorstring" proto_block_restart "$interface" ;; 11|19) json_get_var authfail authfail proto_notify_error "$interface" "$errorstring" if [ "${authfail:-0}" -gt 0 ]; then proto_block_restart "$interface" fi ;; *) proto_notify_error "$interface" "$errorstring" ;; esac proto_kill_command "$interface" } # PPP on serial device proto_ppp_init_config() { proto_config_add_string "device" ppp_generic_init_config no_device=1 available=1 lasterror=1 } proto_ppp_setup() { local config="$1" json_get_var device device ppp_generic_setup "$config" "$device" } proto_ppp_teardown() { ppp_generic_teardown "$@" } proto_pppoe_init_config() { ppp_generic_init_config proto_config_add_string "ac" proto_config_add_string "service" proto_config_add_string "host_uniq" lasterror=1 } proto_pppoe_setup() { local config="$1" local iface="$2" for module in slhc ppp_generic pppox pppoe; do /sbin/insmod $module 2>&- >&- done json_get_var mtu mtu mtu="${mtu:-1492}" json_get_var ac ac json_get_var service service json_get_var host_uniq host_uniq ppp_generic_setup "$config" \ plugin rp-pppoe.so \ ${ac:+rp_pppoe_ac "$ac"} \ ${service:+rp_pppoe_service "$service"} \ ${host_uniq:+host-uniq "$host_uniq"} \ "nic-$iface" } proto_pppoe_teardown() { ppp_generic_teardown "$@" } proto_pppoa_init_config() { ppp_generic_init_config proto_config_add_int "atmdev" proto_config_add_int "vci" proto_config_add_int "vpi" proto_config_add_string "encaps" no_device=1 available=1 lasterror=1 } proto_pppoa_setup() { local config="$1" local iface="$2" for module in slhc ppp_generic pppox pppoatm; do /sbin/insmod $module 2>&- >&- done json_get_vars atmdev vci vpi encaps case "$encaps" in 1|vc) encaps="vc-encaps" ;; *) encaps="llc-encaps" ;; esac ppp_generic_setup "$config" \ plugin pppoatm.so \ ${atmdev:+$atmdev.}${vpi:-8}.${vci:-35} \ ${encaps} } proto_pppoa_teardown() { ppp_generic_teardown "$@" } proto_pptp_init_config() { ppp_generic_init_config proto_config_add_string "server" proto_config_add_string "interface" available=1 no_device=1 lasterror=1 } proto_pptp_setup() { local config="$1" local iface="$2" local ip serv_addr server interface json_get_vars interface server [ -n "$server" ] && { for ip in $(resolveip -t 5 "$server"); do ( proto_add_host_dependency "$config" "$ip" $interface ) serv_addr=1 done } [ -n "$serv_addr" ] || { echo "Could not resolve server address" sleep 5 proto_setup_failed "$config" exit 1 } local load for module in slhc ppp_generic ppp_async ppp_mppe ip_gre gre pptp; do grep -q "^$module " /proc/modules && continue /sbin/insmod $module 2>&- >&- load=1 done [ "$load" = "1" ] && sleep 1 ppp_generic_setup "$config" \ plugin pptp.so \ pptp_server $server \ file /etc/ppp/options.pptp } proto_pptp_teardown() { ppp_generic_teardown "$@" } [ -n "$INCLUDE_ONLY" ] || { add_protocol ppp [ -f /usr/lib/pppd/*/rp-pppoe.so ] && add_protocol pppoe [ -f /usr/lib/pppd/*/pppoatm.so ] && add_protocol pppoa [ -f /usr/lib/pppd/*/pptp.so ] && add_protocol pptp }
Find difference