diff options
| -rw-r--r-- | package/pptp/files/pptp.sh | 12 | 
1 files changed, 11 insertions, 1 deletions
| diff --git a/package/pptp/files/pptp.sh b/package/pptp/files/pptp.sh index 0743082ca..ba0e37669 100644 --- a/package/pptp/files/pptp.sh +++ b/package/pptp/files/pptp.sh @@ -2,12 +2,18 @@ scan_pptp() {  	scan_ppp "$@"  } +find_gw() { +	route -n | awk '$1 == "0.0.0.0" { print $2; exit }' +} + +  setup_interface_pptp() {  	local config="$2"  	local ifname  	config_get device "$config" device  	config_get ipproto "$config" ipproto +	config_get server "$cfg" server  	for module in slhc ppp_generic ppp_async ip_gre; do  		/sbin/insmod $module 2>&- >&- @@ -15,6 +21,11 @@ setup_interface_pptp() {  	sleep 1  	setup_interface "$device" "$config" "${ipproto:-dhcp}" +	local gw="$(find_gw)" +	[ -n "$gw" ] && { +		route delete "$server" 2>/dev/null >/dev/null +		route add "$server" gw "$gw" +	}  	# fix up the netmask  	config_get netmask "$config" netmask @@ -26,7 +37,6 @@ setup_interface_pptp() {  	uci_set_state network "$config" ifname "$ifname"  	config_get mtu "$cfg" mtu -	config_get server "$cfg" server  	mtu=${mtu:-1452}  	start_pppd "$config" \  		pty "/usr/sbin/pptp $server --loglevel 0 --nolaunchpppd" \ | 
