| package/ppp/files/ppp.sh |
| 65 | 65 | # /dev/ppp fast enough to be used here |
| 66 | 66 | [ -e /dev/ppp ] || mknod /dev/ppp c 108 0 |
| 67 | 67 | |
| 68 | local device |
| 68 | 69 | config_get device "$cfg" device |
| 70 | |
| 71 | local unit |
| 69 | 72 | config_get unit "$cfg" unit |
| 73 | |
| 74 | local username |
| 70 | 75 | config_get username "$cfg" username |
| 76 | |
| 77 | local password |
| 71 | 78 | config_get password "$cfg" password |
| 79 | |
| 80 | local keepalive |
| 72 | 81 | config_get keepalive "$cfg" keepalive |
| 73 | 82 | |
| 83 | local connect |
| 74 | 84 | config_get connect "$cfg" connect |
| 85 | |
| 86 | local disconnect |
| 75 | 87 | config_get disconnect "$cfg" disconnect |
| 88 | |
| 89 | local pppd_options |
| 76 | 90 | config_get pppd_options "$cfg" pppd_options |
| 91 | |
| 92 | local defaultroute |
| 77 | 93 | config_get_bool defaultroute "$cfg" defaultroute 1 |
| 78 | 94 | [ "$defaultroute" -eq 1 ] && defaultroute="defaultroute replacedefaultroute" || defaultroute="" |
| 79 | 95 | |
| 80 | | interval="${keepalive##*[, ]}" |
| 96 | local interval="${keepalive##*[, ]}" |
| 81 | 97 | [ "$interval" != "$keepalive" ] || interval=5 |
| 82 | 98 | |
| 83 | | config_get_bool peerdns "$cfg" peerdns 1 |
| 84 | | [ "$peerdns" -eq 1 ] && peerdns="usepeerdns" || { |
| 99 | local dns |
| 100 | config_get dns "$config" dns |
| 101 | |
| 102 | local has_dns=0 |
| 103 | local peer_default=1 |
| 104 | [ -n "$dns" ] && { |
| 105 | has_dns=1 |
| 106 | peer_default=0 |
| 107 | } |
| 108 | |
| 109 | local peerdns |
| 110 | config_get_bool peerdns "$cfg" peerdns $peer_default |
| 111 | |
| 112 | echo -n "" > /tmp/resolv.conf.auto |
| 113 | |
| 114 | [ "$peerdns" -eq 1 ] && { |
| 115 | peerdns="usepeerdns" |
| 116 | } || { |
| 85 | 117 | peerdns="" |
| 86 | | config_get dns "$config" dns |
| 87 | 118 | for dns in $dns; do |
| 88 | | grep -q "$dns" /tmp/resolv.conf.auto 2>/dev/null || \ |
| 89 | | echo "nameserver $dns" >> /tmp/resolv.conf.auto |
| 119 | echo "nameserver $dns" >> /tmp/resolv.conf.auto |
| 90 | 120 | done |
| 91 | 121 | } |
| 92 | 122 | |
| 93 | | config_get demand "$cfg" demand |
| 94 | | [ -n "$demand" ] && echo "nameserver 1.1.1.1" > /tmp/resolv.conf.auto |
| 123 | local demand |
| 124 | config_get_bool demand "$cfg" demand 0 |
| 95 | 125 | |
| 126 | local demandargs |
| 127 | [ "$demand" -eq 1 ] && { |
| 128 | demandargs="precompiled-active-filter /etc/ppp/filter demand idle" |
| 129 | [ "$has_dns" -eq 0 ] && \ |
| 130 | echo "nameserver 1.1.1.1" > /tmp/resolv.conf.auto |
| 131 | } || { |
| 132 | demandargs="persist" |
| 133 | } |
| 134 | |
| 135 | local ipv6 |
| 96 | 136 | config_get_bool ipv6 "$cfg" ipv6 0 |
| 97 | 137 | [ "$ipv6" -eq 1 ] && ipv6="+ipv6" || ipv6="" |
| 98 | 138 | |
| 99 | 139 | /usr/sbin/pppd "$@" \ |
| 100 | 140 | ${keepalive:+lcp-echo-interval $interval lcp-echo-failure ${keepalive%%[, ]*}} \ |
| 101 | | ${demand:+precompiled-active-filter /etc/ppp/filter demand idle }${demand:-persist} \ |
| 141 | $demandargs \ |
| 102 | 142 | $peerdns \ |
| 103 | 143 | $defaultroute \ |
| 104 | 144 | ${username:+user "$username" password "$password"} \ |
| ... | ... | |
| 117 | 157 | local iface="$1" |
| 118 | 158 | local config="$2" |
| 119 | 159 | |
| 160 | local device |
| 120 | 161 | config_get device "$config" device |
| 121 | 162 | |
| 163 | local mtu |
| 122 | 164 | config_get mtu "$config" mtu |
| 165 | |
| 123 | 166 | mtu=${mtu:-1492} |
| 124 | 167 | start_pppd "$config" \ |
| 125 | 168 | mtu $mtu mru $mtu \ |