mirror of the now-defunct rocklinux.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

140 lines
4.5 KiB

  1. ppp_option() {
  2. local optfile=$1
  3. local opt=$2 ; shift 2
  4. case $opt in
  5. hide-password|show-password) optx="hide-password|show-password" ;;
  6. refuse-chap|require-chap) optx="refuse-chap|require-chap" ;;
  7. refuse-mschap|require-mschap) optx="refuse-mschap|require-mschap" ;;
  8. refuse-mschap-v2|require-mschap-v2) optx="refuse-mschap-v2|require-mschap-v2" ;;
  9. refuse-eap|require-eap) optx="refuse-eap|require-eap" ;;
  10. refuse-pap|require-pap) optx="refuse-pap|require-pap" ;;
  11. require-mppe|nomppe) optx="require-mppe|nomppe" ;;
  12. require-mppe-40|nomppe-40) optx="require-mppe-40|nomppe-40" ;;
  13. require-mppe-128|nomppe-128) optx="require-mppe-128|nomppe-128" ;;
  14. noauth|auth) optx="noauth|auth" ;;
  15. nobsdcomp|bsdcomp) optx="nobsdcomp|bsdcomp" ;;
  16. nocrtscts|crtscts) optx="nocrtscts|crtscts" ;;
  17. nocdtrcts|cdtrcts) optx="nocdtrcts|cdtrcts" ;;
  18. nodefaultroute|defaultroute) optx="nodefaultroute|defaultroute" ;;
  19. nodeflate|deflate) optx="nodeflate|deflate" ;;
  20. noendpoint|endpoint) optx="noendpoint|endpoint" ;;
  21. noipv6|ipv6) optx="noipv6|ipv6" ;;
  22. noipx|ipx) optx="noipx|ipx" ;;
  23. noktune|ktune) optx="noktune|ktune" ;;
  24. nomp|mp) optx="nomp|mp" ;;
  25. nomppe-stateful|mppe-stateful) optx="nomppe-stateful|mppe-stateful" ;;
  26. nompshortseq|mpshortseq) optx="nompshortseq|mpshortseq" ;;
  27. nomultilink|multilink) optx="nomultilink|multilink" ;;
  28. nopersist|persist) optx="nopersist|persist" ;;
  29. nopredictor1|predictor1) optx="nopredictor1|predictor1" ;;
  30. noproxyarp|proxyarp) optx="noproxyarp|proxyarp" ;;
  31. novj|vj) optx="novj|vj" ;;
  32. *) optx="$opt" ;;
  33. esac
  34. if egrep "^($optx) .*" $optfile 1>/dev/null 2>/dev/null; then
  35. optx="`echo $optx | sed 's,|,\\\\|,g'`"
  36. sed -i "s,^\($optx\) .*,$opt $*," $optfile
  37. else
  38. echo "$opt $*" >> $optfile
  39. fi
  40. }
  41. chat_init_if() {
  42. if isfirst "chat_$if" ; then
  43. addcode up 4 1 "echo -n > \$ppp_${if}_chat"
  44. addcode up 4 6 "ppp_option \$ppp_${if}_config \
  45. connect \'chat -v -f \$ppp_${if}_chat\'"
  46. fi
  47. }
  48. # PUBLIC COMMANDS ###########################################################
  49. # pppoe ppp-interface [config file|auto] [ppp-command-line-arg [...]]
  50. public_ppp() {
  51. # config file
  52. eval "ppp_${if}_config=$rocknet_tmp_base/ppp_${if}_options"
  53. eval "ppp_${if}_chat=$rocknet_tmp_base/ppp_${if}_chat"
  54. # get unit from $if
  55. ppp_unit=${if#ppp}
  56. # parse args
  57. ppp_if=$1 ; shift
  58. local ppp_args="`echo $* | sed 's,",\\\\",g'`"
  59. addcode up 4 1 "echo -n > \$ppp_${if}_config"
  60. addcode up 4 2 "chmod 0600 \$ppp_${if}_config"
  61. addcode up 6 2 "/usr/sbin/pppd file \$ppp_${if}_config $ppp_if unit $ppp_unit $ppp_args"
  62. addcode down 5 5 "[ -f /var/run/$if.pid ] && kill -TERM \`head -n 1 /var/run/$if.pid\`"
  63. addcode down 5 4 "[ -f /var/run/$if.pid ] && rm -f /var/run/$if.pid"
  64. }
  65. public_pppoe() {
  66. addcode up 4 5 "ppp_option \$ppp_${if}_config plugin rp-pppoe.so"
  67. addcode up 4 5 "ppp_option \$ppp_${if}_config mru 1492"
  68. addcode up 4 5 "ppp_option \$ppp_${if}_config mtu 1492"
  69. addcode up 5 1 "ip link set $ppp_if up"
  70. addcode down 5 5 "ip link set $ppp_if down"
  71. }
  72. public_ppp_defaults() {
  73. local each
  74. for each in noipdefault noauth hide-password \
  75. ipcp-accept-local ipcp-accept-remote \
  76. defaultroute usepeerdns ; do
  77. addcode up 4 4 "ppp_option \$ppp_${if}_config $each"
  78. done
  79. }
  80. public_ppp_speed_defaults() {
  81. local each
  82. for each in default-asyncmap noaccomp nobsdcomp nodeflate nopcomp \
  83. novj novjccomp ktune ; do
  84. addcode up 4 4 "ppp_option \$ppp_${if}_config $each"
  85. done
  86. addcode up 4 5 "ppp_option \$ppp_${if}_config lcp-echo-interval 20"
  87. addcode up 4 5 "ppp_option \$ppp_${if}_config lcp-echo-failure 3"
  88. }
  89. public_ppp_option() {
  90. local param="`echo $* | sed 's,",\\\\",g'`"
  91. addcode up 4 6 "ppp_option \$ppp_${if}_config $param"
  92. }
  93. public_ppp_on_demand() {
  94. addcode up 4 6 "ppp_option \$ppp_${if}_config demand"
  95. addcode up 4 6 "ppp_option \$ppp_${if}_config idle $1"
  96. addcode up 4 6 "ppp_option \$ppp_${if}_config persist"
  97. }
  98. public_chat_defaults() {
  99. chat_init_if
  100. addcode up 4 1 "echo 'ABORT \"NO CARRIER\"
  101. ABORT \"NO DIALTONE\"
  102. ABORT \"ERROR\"
  103. ABORT \"NO ANSWER\"
  104. ABORT \"BUSY\"
  105. \"\" \"at\"' >> \$ppp_${if}_chat"
  106. }
  107. public_chat_init() {
  108. chat_init_if
  109. # don't ask and count ...
  110. opts="`echo "$@" | sed -e 's/"/\\\\\\\\\\\\\"/g' \
  111. -e 's/&/\\\\\\&/g'`"
  112. addcode up 4 3 "echo '\"OK\" \"$opts\"' >> \$ppp_${if}_chat"
  113. }
  114. public_chat_dial() {
  115. chat_init_if
  116. # don't ask and count ...
  117. opts="`echo "$@" | sed 's/"/\\\\\\\\\\\\\"/g'`"
  118. addcode up 4 5 "echo -e '\"OK\" \"$opts\"\n\"CONNECT\" \"\"' >> \$ppp_${if}_chat"
  119. }