summaryrefslogtreecommitdiffstats
path: root/package/ppp/files/etc/ppp/ip-up
blob: 353f667895ed7bda73e45c0193612a4f3768693a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/sh

. /etc/functions.sh
. /lib/network/config.sh

PPP_IFACE="$1"
PPP_TTY="$2"
PPP_SPEED="$3"
PPP_LOCAL="$4"
PPP_REMOTE="$5"
PPP_IPPARAM="$(echo $6 | sed 's/\./_/g')"

export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM
[ -z "$PPP_IPPARAM" -o -z "$PPP_LOCAL" ] || {
	uci_set_state network "$PPP_IPPARAM" ifname "$PPP_IFACE"
	uci_set_state network "$PPP_IPPARAM" ipaddr "$PPP_LOCAL"
	uci_set_state network "$PPP_IPPARAM" gateway "$PPP_REMOTE"

	local dns="$DNS1${DNS2:+ $DNS2}"
	[ -n "$dns" ] && add_dns "$PPP_IPPARAM" $dns
}

[ -z "$PPP_IPPARAM" ] || {
	case "$PPP_IFACE" in
		# only handle uci managed interfaces here, others are done by generic hotplug
		3g-*|ppp-*|pppoa-*|pppoe-*|pptp-*)
			env -i ACTION="ifup" INTERFACE="$PPP_IPPARAM" DEVICE="$PPP_IFACE" PROTO=ppp /sbin/hotplug-call "iface"
		;;
	esac
}

[ -d /etc/ppp/ip-up.d ] && {
	for SCRIPT in /etc/ppp/ip-up.d/*
	do
		[ -x "$SCRIPT" ] && "$SCRIPT" "$@"
	done
}