Diff
checker
文本
文本
图像
文档
Excel
文件夹
Legal
Enterprise
桌面版
定价
登录
下载 Diffchecker 桌面版
比较文本
查找两个文本文件之间的差异
工具
历史
实时编辑器
隐藏空白更改
折叠未更改行
关闭换行
视图
拆分
统一
比对精度
智能
单词
字符
文本样式
更改外观
语法高亮
选择语法
忽略
文本转换
转到第一个差异
编辑输入
Diffchecker Desktop
运行Diffchecker最安全的方式。获取Diffchecker桌面应用:您的差异永远不会离开您的电脑!
获取桌面版
Untitled diff
创建于
8年前
差异永不过期
清除
导出
分享
解释
6 删除
行
总计
删除
字符
总计
删除
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
325 行
全部复制
1 添加
行
总计
添加
字符
总计
添加
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
320 行
全部复制
#!/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} \
复制
已复制
复制
已复制
${ipv6:++ipv6} \
${autoipv6:+set AUTOIPV6=1} \
${ip6table:+set IP6TABLE=$ip6table} \
${peerdns:+set PEERDNS=$peerdns} \
${peerdns:+set PEERDNS=$peerdns} \
nodefaultroute \
nodefaultroute \
复制
已复制
复制
已复制
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 \
复制
已复制
复制
已复制
ipv6-up-script /lib/netifd/ppp6-up \
ip-down-script /lib/netifd/ppp-down \
ip-down-script /lib/netifd/ppp-down \
复制
已复制
复制
已复制
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
}
}
已保存差异
原始文本
打开文件
#!/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 }
更改后文本
打开文件
#!/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 }
查找差异