# --- SDE-COPYRIGHT-NOTE-BEGIN --- # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # # Filename: package/.../ppp/rocknet_ppp.sh # Copyright (C) 2004 - 2006 The T2 SDE Project # # More information can be found in the files COPYING and README. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. A copy of the # GNU General Public License can be found in the file COPYING. # --- SDE-COPYRIGHT-NOTE-END --- ppp_option() { local optfile=$1 local opt=$2 ; shift 2 case $opt in hide-password|show-password) optx="hide-password|show-password" ;; refuse-chap|require-chap) optx="refuse-chap|require-chap" ;; refuse-mschap|require-mschap) optx="refuse-mschap|require-mschap" ;; refuse-mschap-v2|require-mschap-v2) optx="refuse-mschap-v2|require-mschap-v2" ;; refuse-eap|require-eap) optx="refuse-eap|require-eap" ;; refuse-pap|require-pap) optx="refuse-pap|require-pap" ;; require-mppe|nomppe) optx="require-mppe|nomppe" ;; require-mppe-40|nomppe-40) optx="require-mppe-40|nomppe-40" ;; require-mppe-128|nomppe-128) optx="require-mppe-128|nomppe-128" ;; noauth|auth) optx="noauth|auth" ;; nobsdcomp|bsdcomp) optx="nobsdcomp|bsdcomp" ;; nocrtscts|crtscts) optx="nocrtscts|crtscts" ;; nocdtrcts|cdtrcts) optx="nocdtrcts|cdtrcts" ;; nodefaultroute|defaultroute) optx="nodefaultroute|defaultroute" ;; nodeflate|deflate) optx="nodeflate|deflate" ;; noendpoint|endpoint) optx="noendpoint|endpoint" ;; noipv6|ipv6) optx="noipv6|ipv6" ;; noipx|ipx) optx="noipx|ipx" ;; noktune|ktune) optx="noktune|ktune" ;; nomp|mp) optx="nomp|mp" ;; nomppe-stateful|mppe-stateful) optx="nomppe-stateful|mppe-stateful" ;; nompshortseq|mpshortseq) optx="nompshortseq|mpshortseq" ;; nomultilink|multilink) optx="nomultilink|multilink" ;; nopersist|persist) optx="nopersist|persist" ;; nopredictor1|predictor1) optx="nopredictor1|predictor1" ;; noproxyarp|proxyarp) optx="noproxyarp|proxyarp" ;; novj|vj) optx="novj|vj" ;; *) optx="$opt" ;; esac if egrep "^($optx) .*" $optfile 1>/dev/null 2>/dev/null; then optx="`echo $optx | sed 's,|,\\\\|,g'`" sed -i "s,^\($optx\) .*,$opt $*," $optfile else echo "$opt $*" >> $optfile fi } chat_init_if() { if isfirst "chat_$if" ; then addcode up 4 1 "echo -n > \$ppp_${if}_chat" addcode up 4 6 "ppp_option \$ppp_${if}_config \ connect \'chat -v -s -f \$ppp_${if}_chat\'" fi } # PUBLIC COMMANDS ########################################################### # pppoe ppp-interface [config file|auto] [ppp-command-line-arg [...]] public_ppp() { # config file eval "ppp_${if}_config=$rocknet_tmp_base/ppp_${if}_options" eval "ppp_${if}_chat=$rocknet_tmp_base/ppp_${if}_chat" # get unit from $if ppp_unit=${if#ppp} # parse args ppp_if=$1 ; shift local ppp_args="`echo $* | sed 's,",\\\\",g'`" addcode up 4 1 "echo -n > \$ppp_${if}_config" addcode up 4 2 "chmod 0600 \$ppp_${if}_config" ppp_command="/usr/sbin/pppd file \$ppp_${if}_config $ppp_if" ppp_command="$ppp_command unit $ppp_unit" ppp_command="$ppp_command $ppp_args" if [ "$CANUSESERVICE" == "1" ]; then addcode up 5 1 "service_create $if 'ip link set $ppp_if down up exec `eval echo $ppp_command` nodetach' \ '[ -f /var/run/$if.pid ] && rm -f /var/run/$if.pid'" addcode down 5 1 "service_destroy $if" else addcode up 6 2 "$ppp_command" addcode down 5 5 "[ -f /var/run/$if.pid ] && kill -TERM \`head -n 1 /var/run/$if.pid\`" addcode down 5 4 "[ -f /var/run/$if.pid ] && rm -f /var/run/$if.pid" fi } public_pppoe() { addcode up 4 5 "ppp_option \$ppp_${if}_config plugin rp-pppoe.so" addcode up 4 5 "ppp_option \$ppp_${if}_config mru 1492" addcode up 4 5 "ppp_option \$ppp_${if}_config mtu 1492" if [ "$CANUSESERVICE" != "1" ]; then addcode up 5 1 "ip link set $ppp_if up" fi } public_ppp_defaults() { local each for each in noipdefault noauth hide-password \ ipcp-accept-local ipcp-accept-remote \ defaultroute usepeerdns ; do addcode up 4 4 "ppp_option \$ppp_${if}_config $each" done } public_ppp_speed_defaults() { local each for each in default-asyncmap noaccomp nobsdcomp nodeflate nopcomp \ novj novjccomp ktune ; do addcode up 4 4 "ppp_option \$ppp_${if}_config $each" done addcode up 4 5 "ppp_option \$ppp_${if}_config lcp-echo-interval 20" addcode up 4 5 "ppp_option \$ppp_${if}_config lcp-echo-failure 3" } public_ppp_option() { local param="`echo $* | sed 's,",\\\\",g'`" addcode up 4 6 "ppp_option \$ppp_${if}_config $param" } public_ppp_on_demand() { addcode up 4 6 "ppp_option \$ppp_${if}_config demand" addcode up 4 6 "ppp_option \$ppp_${if}_config idle $1" addcode up 4 6 "ppp_option \$ppp_${if}_config persist" } public_chat_defaults() { chat_init_if addcode up 4 1 "echo 'ABORT \"NO CARRIER\" ABORT \"NO DIALTONE\" ABORT \"ERROR\" ABORT \"NO ANSWER\" ABORT \"BUSY\" \"\" \"at\"' >> \$ppp_${if}_chat" } public_chat_init() { chat_init_if # don't ask and count ... opts="`echo "$@" | sed -e 's/"/\\\\\\\\\\\\\"/g' \ -e 's/&/\\\\\\&/g'`" addcode up 4 3 "echo '\"OK\" \"$opts\"' >> \$ppp_${if}_chat" } public_chat_dial() { chat_init_if # don't ask and count ... opts="`echo "$@" | sed 's/"/\\\\\\\\\\\\\"/g'`" addcode up 4 5 "echo -e '\"OK\" \"$opts\"\n\"CONNECT\" \"\"' >> \$ppp_${if}_chat" }