hotplug-based network script rewrite
SVN-Revision: 2531
This commit is contained in:
parent
9a8a69c0b8
commit
733dc97762
15 changed files with 366 additions and 247 deletions
|
@ -60,6 +60,3 @@ mount none /tmp -t ramfs
|
|||
umount /rom/proc
|
||||
umount /rom/tmp
|
||||
umount /rom/dev
|
||||
|
||||
# normally created by boot script
|
||||
mkdir -p /var/run
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/bin/ash
|
||||
#!/bin/sh
|
||||
. /etc/nvram.sh
|
||||
|
||||
alias debug=${DEBUG:-:}
|
||||
|
@ -7,74 +7,11 @@ alias debug=${DEBUG:-:}
|
|||
if_valid () (
|
||||
ifconfig "$1" >&- 2>&- ||
|
||||
[ "${1%%[0-9]}" = "br" ] ||
|
||||
{
|
||||
[ "${1%%[0-9]}" = "vlan" ] && (
|
||||
i=${1#vlan}
|
||||
hwname=$(nvram get vlan${i}hwname)
|
||||
hwaddr=$(nvram get ${hwname}macaddr)
|
||||
[ -z "$hwaddr" ] && return 1
|
||||
|
||||
vif=$(ifconfig -a | awk '/^eth.*'$hwaddr'/ {print $1; exit}' IGNORECASE=1)
|
||||
debug "# vlan$i => $vif"
|
||||
|
||||
$DEBUG ifconfig $vif up
|
||||
$DEBUG vconfig add $vif $i 2>&-
|
||||
)
|
||||
} ||
|
||||
{ debug "# missing interface '$1' ignored"; false; }
|
||||
)
|
||||
|
||||
do_ifup() {
|
||||
if_proto=$(nvram get ${2}_proto)
|
||||
if=$(nvram get ${2}_ifname)
|
||||
[ "${if%%[0-9]}" = "ppp" ] && if=$(nvram get ${if_proto}_ifname)
|
||||
|
||||
pidfile=/var/run/${if}.pid
|
||||
[ -f $pidfile ] && $DEBUG kill $(cat $pidfile)
|
||||
|
||||
case "$1" in
|
||||
static)
|
||||
ip=$(nvram get ${2}_ipaddr)
|
||||
netmask=$(nvram get ${2}_netmask)
|
||||
gateway=$(nvram get ${2}_gateway)
|
||||
|
||||
$DEBUG ifconfig $if $ip ${netmask:+netmask $netmask} broadcast + up
|
||||
${gateway:+$DEBUG route add default gw $gateway}
|
||||
|
||||
[ -f /etc/resolv.conf ] || {
|
||||
debug "# --- creating /etc/resolv.conf ---"
|
||||
for dns in $(nvram get ${2}_dns); do
|
||||
echo "nameserver $dns" >> /etc/resolv.conf
|
||||
done
|
||||
}
|
||||
|
||||
env -i ACTION="ifup" INTERFACE="${2}" PROTO=static /sbin/hotplug "iface" &
|
||||
;;
|
||||
dhcp)
|
||||
DHCP_IP=$(nvram get ${2}_ipaddr)
|
||||
DHCP_NETMASK=$(nvram get ${2}_netmask)
|
||||
$DEBUG ifconfig $if $ip ${netmask:+netmask $netmask} broadcast + up
|
||||
|
||||
DHCP_ARGS="-i $if ${DHCP_IP:+-r $DHCP_IP} -b -p $pidfile"
|
||||
DHCP_HOSTNAME=$(nvram get ${2}_hostname)
|
||||
DHCP_HOSTNAME=${DHCP_HOSTNAME%%.*}
|
||||
[ -z $DHCP_HOSTNAME ] || DHCP_ARGS="$DHCP_ARGS -H $DHCP_HOSTNAME"
|
||||
[ "$if_proto" = "pptp" ] && DHCP_ARGS="$DHCP_ARGS -n -q" || DHCP_ARGS="$DHCP_ARGS -R &"
|
||||
oldpid=$(cat $pidfile)
|
||||
${DEBUG:-eval} "udhcpc $DHCP_ARGS"
|
||||
pidof udhcpc | grep "$oldpid" >&- 2>&- && {
|
||||
sleep 1
|
||||
kill -9 $oldpid
|
||||
}
|
||||
# hotplug events are handled by /usr/share/udhcpc/default.script
|
||||
;;
|
||||
none|"")
|
||||
;;
|
||||
*)
|
||||
[ -x "/sbin/ifup.$1" ] && { $DEBUG /sbin/ifup.$1 ${2}; exit; }
|
||||
echo "### ifup ${2}: ignored ${2}_proto=\"$1\" (not supported)"
|
||||
;;
|
||||
esac
|
||||
hotplug_dev() {
|
||||
env -i ACTION=$1 INTERFACE=$2 /sbin/hotplug net
|
||||
}
|
||||
|
||||
bitcount () {
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
[ "${INTERFACE%%[0-9]*}" = "wds" ] && {
|
||||
ifconfig $INTERFACE 0.0.0.0 up
|
||||
/usr/sbin/brctl addif br0 $INTERFACE
|
||||
}
|
||||
|
190
openwrt/package/base-files/default/etc/hotplug.d/net/10-net
Normal file
190
openwrt/package/base-files/default/etc/hotplug.d/net/10-net
Normal file
|
@ -0,0 +1,190 @@
|
|||
#!/bin/sh
|
||||
setup_eth()
|
||||
{
|
||||
[ -f /proc/net/wl0 ] && {
|
||||
lsmod | grep wlcompat >&- || insmod wlcompat
|
||||
}
|
||||
iwconfig "$INTERFACE" 2>&- | grep -v 'no wireless' >&- && {
|
||||
/sbin/wifi
|
||||
}
|
||||
if="$(echo "$INTERFACE" | sed s,eth,et,)"
|
||||
ifconfig "$INTERFACE" up 2>&- >&-
|
||||
for vlan in $(seq 0 15); do
|
||||
[ "$(nvram get vlan${vlan}hwname)" = "$if" ] && \
|
||||
$DEBUG vconfig add "$INTERFACE" "$vlan"
|
||||
done
|
||||
}
|
||||
|
||||
find_name()
|
||||
{
|
||||
pppoa_ifname="atm0" # hack for ppp over atm, which has no ${proto}_ifname
|
||||
interfaces="lan wan wifi $(nvram get ifnames)"
|
||||
for ifname in $interfaces; do
|
||||
IFTYPE="${ifname}"
|
||||
IFPROTO="$(nvram get ${IFTYPE}_proto)"
|
||||
IFACE="$(nvram get ${IFTYPE}_ifname)"
|
||||
[ -z "$IFPROTO" -o "$IFPROTO" = "none" ] || {
|
||||
[ "${IFACE}" = "$INTERFACE" ] && return 0
|
||||
case "$IFPROTO" in
|
||||
static|dhcp)
|
||||
[ "${IFACE%%[0-9]*}" = "br" ] && {
|
||||
for part in $(nvram get ${IFTYPE}_ifnames); do
|
||||
[ "$part" = "$INTERFACE" ] && return 0
|
||||
done
|
||||
}
|
||||
;;
|
||||
*)
|
||||
[ "$(nvram get ${IFPROTO}_ifname)" = "$INTERFACE" \
|
||||
-a -x /sbin/ifup.${IFPROTO} ] && return 0
|
||||
;;
|
||||
esac
|
||||
}
|
||||
done
|
||||
IFACE=""
|
||||
IFTYPE=""
|
||||
IFPROTO=""
|
||||
return 255
|
||||
}
|
||||
|
||||
do_ifup() {
|
||||
if="$3"
|
||||
if_proto="$(nvram get ${2}_proto)"
|
||||
|
||||
pidfile=/var/run/${if}.pid
|
||||
[ -f $pidfile ] && $DEBUG kill $(cat $pidfile)
|
||||
|
||||
case "$1" in
|
||||
static)
|
||||
ip=$(nvram get ${2}_ipaddr)
|
||||
netmask=$(nvram get ${2}_netmask)
|
||||
gateway=$(nvram get ${2}_gateway)
|
||||
|
||||
$DEBUG ifconfig $if $ip ${netmask:+netmask $netmask} broadcast + up
|
||||
${gateway:+$DEBUG route add default gw $gateway}
|
||||
|
||||
[ -f /etc/resolv.conf ] || {
|
||||
debug "# --- creating /etc/resolv.conf ---"
|
||||
for dns in $(nvram get ${2}_dns); do
|
||||
echo "nameserver $dns" >> /etc/resolv.conf
|
||||
done
|
||||
}
|
||||
|
||||
env -i ACTION="ifup" INTERFACE="${2}" PROTO=static /sbin/hotplug "iface" &
|
||||
;;
|
||||
dhcp)
|
||||
DHCP_IP=$(nvram get ${2}_ipaddr)
|
||||
DHCP_NETMASK=$(nvram get ${2}_netmask)
|
||||
$DEBUG ifconfig $if $ip ${netmask:+netmask $netmask} broadcast + up
|
||||
|
||||
DHCP_ARGS="-i $if ${DHCP_IP:+-r $DHCP_IP} -b -p $pidfile"
|
||||
DHCP_HOSTNAME=$(nvram get ${2}_hostname)
|
||||
DHCP_HOSTNAME=${DHCP_HOSTNAME%%.*}
|
||||
[ -z $DHCP_HOSTNAME ] || DHCP_ARGS="$DHCP_ARGS -H $DHCP_HOSTNAME"
|
||||
[ "$if_proto" = "pptp" ] && DHCP_ARGS="$DHCP_ARGS -n -q" || DHCP_ARGS="$DHCP_ARGS -R &"
|
||||
oldpid=$(cat $pidfile)
|
||||
${DEBUG:-eval} "udhcpc $DHCP_ARGS"
|
||||
pidof udhcpc | grep "$oldpid" >&- 2>&- && {
|
||||
sleep 1
|
||||
kill -9 $oldpid
|
||||
}
|
||||
# hotplug events are handled by /usr/share/udhcpc/default.script
|
||||
;;
|
||||
*)
|
||||
if [ -x "/sbin/ifup.$1" ]; then
|
||||
( $DEBUG . /sbin/ifup.$1 ${2} $3 )
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
do_register()
|
||||
{
|
||||
case "${INTERFACE%%[0-9]*}" in
|
||||
eth) setup_eth;;
|
||||
esac
|
||||
|
||||
[ -z "$IFTYPE" -o -z "$IFPROTO" ] && {
|
||||
find_name || {
|
||||
case "${INTERFACE%%[0-9]*}" in
|
||||
wds)
|
||||
for tmp in lan wifi; do
|
||||
[ -z "$IFPROTO" ] && [ "$(nvram get ${tmp}_ifname)" = "br0" ] && {
|
||||
IFPROTO="$(nvram get ${tmp}_proto)"
|
||||
IFTYPE="${tmp}"
|
||||
}
|
||||
done
|
||||
[ -z "$IFPROTO" ] && return 0
|
||||
;;
|
||||
atm)
|
||||
for tmp in lan wan wifi $(nvram get ifnames); do
|
||||
[ "$(nvram get ${tmp}_proto)" = "pppoa" ] && {
|
||||
do_ifup "pppoa" "$tmp" "$INTERFACE"
|
||||
return 0
|
||||
}
|
||||
done
|
||||
;;
|
||||
*)
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
}
|
||||
}
|
||||
|
||||
case "${INTERFACE%%[0-9]*}" in
|
||||
ppp|atm);;
|
||||
*)
|
||||
mac=$(nvram get ${IFTYPE}_hwaddr)
|
||||
${mac:+$DEBUG ifconfig $INTERFACE down hw ether $mac}
|
||||
;;
|
||||
esac
|
||||
|
||||
if="$(nvram get ${IFTYPE}_ifname)"
|
||||
if [ "${if%%[0-9]}" = "br" ]; then
|
||||
if_valid "$INTERFACE" && {
|
||||
ifconfig "$if" 2>&- >&- || {
|
||||
stp=$(nvram get ${IFTYPE}_stp)
|
||||
$DEBUG brctl addbr "$if"
|
||||
$DEBUG brctl setfd "$if" 0
|
||||
$DEBUG brctl stp "$if" "${stp:-0}"
|
||||
}
|
||||
|
||||
if [ "$INTERFACE" != "$if" ]; then
|
||||
$DEBUG ifconfig "$INTERFACE" 0.0.0.0 up
|
||||
brctl addif "$if" "$INTERFACE"
|
||||
else
|
||||
do_ifup "$IFPROTO" "$IFTYPE" "$if"
|
||||
fi
|
||||
}
|
||||
else
|
||||
do_ifup "$IFPROTO" "$IFTYPE" "$if"
|
||||
fi
|
||||
}
|
||||
|
||||
do_unregister() {
|
||||
[ "${INTERFACE%%[0-9]*}" = "atm" ] || ifconfig "$INTERFACE" 0.0.0.0 down 2>&-
|
||||
[ -z "$IFTYPE" -o -z "$IFPROTO" ] && find_name
|
||||
[ -z "$IFTYPE" -o -z "$IFPROTO" ] && return 0
|
||||
|
||||
[ "${IFACE%%[0-9]*}" = "br" ] && {
|
||||
if [ "$INTERFACE" != "$IFACE" ]; then
|
||||
brctl delif "$IFACE" "$INTERFACE" 2>&- >&-
|
||||
else
|
||||
brctl delbr "$IFACE" 2>&- >&-
|
||||
fi
|
||||
}
|
||||
|
||||
case "$IFPROTO" in
|
||||
pppoe|pppoa|pptp)
|
||||
killall ifup.${IFPROTO}
|
||||
killall pppd
|
||||
;;
|
||||
dhcp)
|
||||
[ -f /var/run/${INTERFACE}.pid ] && kill "$(cat /var/run/${INTERFACE}.pid)" 2>&- >&-
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
case "$ACTION" in
|
||||
register) do_register;;
|
||||
unregister) do_unregister;;
|
||||
esac
|
|
@ -5,10 +5,22 @@
|
|||
echo "S" > /proc/jffs2_bbc
|
||||
}
|
||||
|
||||
vconfig set_name_type VLAN_PLUS_VID_NO_PAD
|
||||
|
||||
HOSTNAME=$(nvram get wan_hostname)
|
||||
HOSTNAME=${HOSTNAME%%.*}
|
||||
echo ${HOSTNAME:=OpenWrt}>/proc/sys/kernel/hostname
|
||||
|
||||
# automagically run firstboot
|
||||
[ -z "$FAILSAFE" -a -z "$(nvram get no_root_swap)" ] && {
|
||||
{ mount|grep "on / type jffs2" 1>&-; } || firstboot
|
||||
}
|
||||
|
||||
mkdir -p /var/run
|
||||
mkdir -p /var/log
|
||||
touch /var/log/wtmp
|
||||
touch /var/log/lastlog
|
||||
[ "$FAILSAFE" = "true" ] && touch /tmp/.failsafe
|
||||
|
||||
sed 's/^[^#]/insmod &/' /etc/modules /etc/modules.d/* 2>&-|ash
|
||||
|
||||
|
@ -20,13 +32,4 @@ ifconfig eth0 promisc
|
|||
robocfg show
|
||||
}
|
||||
|
||||
HOSTNAME=$(nvram get wan_hostname)
|
||||
HOSTNAME=${HOSTNAME%%.*}
|
||||
echo ${HOSTNAME:=OpenWrt}>/proc/sys/kernel/hostname
|
||||
|
||||
vconfig set_name_type VLAN_PLUS_VID_NO_PAD
|
||||
|
||||
# automagically run firstboot
|
||||
[ -z "$FAILSAFE" -a -z "$(nvram get no_root_swap)" ] && {
|
||||
{ mount|grep "on / type jffs2" 1>&-; } || firstboot
|
||||
}
|
||||
|
|
|
@ -3,10 +3,10 @@
|
|||
[ "$FAILSAFE" != "true" -a -e /etc/config/network ] && . /etc/config/network
|
||||
case "$1" in
|
||||
start|restart)
|
||||
ifup lan
|
||||
ifup wan
|
||||
ifup wifi
|
||||
wifi up
|
||||
# ifup lan
|
||||
# ifup wan
|
||||
# ifup wifi
|
||||
# wifi up
|
||||
|
||||
for route in $(nvram get static_route); do {
|
||||
eval "set $(echo $route | sed 's/:/ /g')"
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
nvram () {
|
||||
if [ -x /usr/sbin/nvram ]; then
|
||||
case $1 in
|
||||
get) eval "echo \${$2:-\$(command nvram get $2)}";;
|
||||
*) command nvram $*;;
|
||||
get) eval "echo \${$2:-\$(/usr/sbin/nvram get $2)}";;
|
||||
*) /usr/sbin/nvram $*;;
|
||||
esac
|
||||
else
|
||||
case $1 in
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
#!/bin/sh
|
||||
[ -e /tmp/.failsafe ] && {
|
||||
export FAILSAFE=true
|
||||
} || {
|
||||
[ -e /etc/config/network ] && . /etc/config/network
|
||||
}
|
||||
. /etc/functions.sh
|
||||
. /etc/network.overrides
|
||||
[ "$FAILSAFE" != "true" -a -e /etc/config/network ] && . /etc/config/network
|
||||
|
||||
PATH=/bin:/sbin:/usr/bin:/usr/sbin
|
||||
LOGNAME=root
|
||||
|
|
|
@ -4,16 +4,26 @@
|
|||
. /etc/network.overrides
|
||||
[ "$FAILSAFE" != "true" -a -e /etc/config/network ] && . /etc/config/network
|
||||
|
||||
type=$1
|
||||
debug "### ifdown $type ###"
|
||||
type=$1
|
||||
|
||||
if_proto=$(nvram get ${type}_proto)
|
||||
if=$(nvram get ${type}_ifname)
|
||||
proto=$(nvram get ${type}_proto)
|
||||
if_valid $if && $DEBUG ifconfig $if down
|
||||
kill $(cat /var/run/${if}.pid 2>&-) 2>&-
|
||||
killall ifup.$proto >&- 2>&-
|
||||
case "$proto" in
|
||||
pptp|pppoe) killall pppd >&- 2>&- ;;
|
||||
static) env -i ACTION="ifdown" INTERFACE="$if" PROTO=static /sbin/hotplug "iface" ;;
|
||||
|
||||
case "$if_proto" in
|
||||
pppoa) hotplug_dev unregister atm0; exit 0 ;;
|
||||
pppoe)
|
||||
[ "$(nvram get pppoe_atm)" = 1 ] && {
|
||||
hotplug_dev unregister atm0
|
||||
exit
|
||||
}
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "${if%%[0-9]}" = "br" ]; then
|
||||
for sif in $(nvram get ${type}_ifnames); do
|
||||
hotplug_dev unregister "$sif"
|
||||
done
|
||||
fi
|
||||
|
||||
hotplug_dev unregister "$if"
|
||||
|
|
|
@ -1,36 +1,31 @@
|
|||
#!/bin/ash
|
||||
#!/bin/sh
|
||||
[ $# = 0 ] && { echo " $0 <group>"; exit; }
|
||||
|
||||
. /etc/functions.sh
|
||||
. /etc/network.overrides
|
||||
[ "$FAILSAFE" != "true" -a -e /etc/config/network ] && . /etc/config/network
|
||||
|
||||
type=$1
|
||||
ifdown $1
|
||||
|
||||
debug "### ifup $type ###"
|
||||
type=$1
|
||||
|
||||
if_proto=$(nvram get ${type}_proto)
|
||||
if=$(nvram get ${type}_ifname)
|
||||
[ "${if%%[0-9]}" = "ppp" ] && if=$(nvram get ${if_proto}_ifname)
|
||||
|
||||
if_valid $if || [ "$if_proto" = "pptp" ] || exit
|
||||
mac=$(nvram get ${type}_hwaddr)
|
||||
$DEBUG ifconfig $if down 2>&-
|
||||
case "$if_proto" in
|
||||
pppoa) hotplug_dev register atm0; exit 0 ;;
|
||||
pppoe)
|
||||
[ "$(nvram get pppoe_atm)" = 1 ] && {
|
||||
hotplug_dev register atm0
|
||||
exit
|
||||
}
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "${if%%[0-9]}" = "br" ]; then
|
||||
stp=$(nvram get ${type}_stp)
|
||||
$DEBUG brctl delbr $if 2>&-
|
||||
$DEBUG brctl addbr $if
|
||||
$DEBUG brctl setfd $if 0
|
||||
$DEBUG brctl stp $if ${stp:-0}
|
||||
|
||||
for sif in $(nvram get ${type}_ifnames); do
|
||||
if_valid $sif || continue
|
||||
${mac:+$DEBUG ifconfig $sif down hw ether $mac}
|
||||
$DEBUG ifconfig $sif 0.0.0.0 up
|
||||
$DEBUG brctl addif $if $sif
|
||||
hotplug_dev register "$sif"
|
||||
done
|
||||
else
|
||||
${mac:+$DEBUG ifconfig $if down hw ether $mac}
|
||||
hotplug_dev register "$if"
|
||||
fi
|
||||
|
||||
do_ifup $if_proto $type
|
||||
|
|
|
@ -63,8 +63,8 @@ $(IPKG_LINUX_ATM):
|
|||
$(IPKG_BR2684CTL):
|
||||
install -d -m0755 $(IDIR_BR2684CTL)/usr/sbin
|
||||
cp -fpR $(PKG_INSTALL_DIR)/usr/sbin/br2684ctl $(IDIR_BR2684CTL)/usr/sbin/
|
||||
install -d -m0755 $(IDIR_BR2684CTL)/etc/init.d
|
||||
install -m0755 ./files/br2684.init $(IDIR_BR2684CTL)/etc/init.d/S30br2684
|
||||
install -d -m0755 $(IDIR_BR2684CTL)/etc/hotplug.d/net
|
||||
install -m0644 ./files/br2684.init $(IDIR_BR2684CTL)/etc/hotplug.d/net/30-br2684
|
||||
$(RSTRIP) $(IDIR_BR2684CTL)/
|
||||
$(IPKG_BUILD) $(IDIR_BR2684CTL) $(PACKAGE_DIR)
|
||||
|
||||
|
|
|
@ -1,22 +1,21 @@
|
|||
#!/bin/sh
|
||||
. /etc/functions.sh
|
||||
[ -e /etc/config/network ] && . /etc/config/network
|
||||
|
||||
killall br2684ctl 2>&- >&-
|
||||
[ "$(nvram get pppoe_atm)" = 1 ] && {
|
||||
[ "${INTERFACE%%[0-9]*}" = "atm" ] && {
|
||||
case "$ACTION" in
|
||||
register)
|
||||
[ "$(nvram get pppoe_atm)" = 1 ] && {
|
||||
VPI=$(nvram get atm_vpi)
|
||||
VCI=$(nvram get atm_vci)
|
||||
case "$(nvram get atm_encaps)" in
|
||||
0|vc)
|
||||
ENCAPS=0
|
||||
0|vc) ENCAPS=0 ;;
|
||||
1|llc) ENCAPS=1 ;;
|
||||
*) ENCAPS=0 ;;
|
||||
esac
|
||||
insmod br2684 2>&- >&-
|
||||
br2684ctl -c0 -e${ENCAPS} -a${VPI:-8}.${VCI:-35} &
|
||||
}
|
||||
;;
|
||||
1|llc)
|
||||
ENCAPS=1
|
||||
;;
|
||||
*)
|
||||
ENCAPS=0
|
||||
unregister)
|
||||
killall br2684ctl 2>&- >&-
|
||||
rmmod br2684
|
||||
;;
|
||||
esac
|
||||
insmod br2684
|
||||
br2684ctl -c0 -e${ENCAPS} -a${VPI:-8}.${VCI:-35} &
|
||||
}
|
||||
|
|
|
@ -14,25 +14,24 @@ for module in slhc ppp_generic pppoatm; do
|
|||
/sbin/insmod $module 2>&- >&-
|
||||
done
|
||||
|
||||
while :; do
|
||||
VPI=$(nvram get atm_vpi)
|
||||
VCI=$(nvram get atm_vci)
|
||||
USERNAME=$(nvram get ppp_username)
|
||||
PASSWORD=$(nvram get ppp_passwd)
|
||||
KEEPALIVE=$(nvram get ppp_redialperiod)
|
||||
KEEPALIVE=${KEEPALIVE:+lcp-echo-interval 10 lcp-echo-failure $KEEPALIVE}
|
||||
DEMAND=$(nvram get ppp_demand)
|
||||
case "$DEMAND" in
|
||||
VPI=$(nvram get atm_vpi)
|
||||
VCI=$(nvram get atm_vci)
|
||||
USERNAME=$(nvram get ppp_username)
|
||||
PASSWORD=$(nvram get ppp_passwd)
|
||||
KEEPALIVE=$(nvram get ppp_redialperiod)
|
||||
KEEPALIVE=${KEEPALIVE:+lcp-echo-interval 10 lcp-echo-failure $KEEPALIVE}
|
||||
DEMAND=$(nvram get ppp_demand)
|
||||
case "$DEMAND" in
|
||||
on|1|enabled)
|
||||
DEMAND=$(nvram get ppp_idletime)
|
||||
DEMAND=${IDLETIME:+demand idle $IDLETIME}
|
||||
;;
|
||||
*) DEMAND="";;
|
||||
esac
|
||||
MTU=$(nvram get ppp_mtu)
|
||||
MTU=${MTU:-1500}
|
||||
*) DEMAND="persist";;
|
||||
esac
|
||||
MTU=$(nvram get ppp_mtu)
|
||||
MTU=${MTU:-1500}
|
||||
|
||||
/usr/sbin/pppd nodetach \
|
||||
/usr/sbin/pppd nodetach \
|
||||
plugin pppoatm.so ${VPI:-8}.${VCI:-35} \
|
||||
usepeerdns \
|
||||
defaultroute \
|
||||
|
@ -43,7 +42,3 @@ while :; do
|
|||
mtu $MTU mru $MTU \
|
||||
$DEMAND \
|
||||
$KEEPALIVE
|
||||
|
||||
# Read settings again (might have changed)
|
||||
[ -e /etc/config/network ] && . /etc/config/network
|
||||
done &
|
||||
|
|
|
@ -14,25 +14,24 @@ for module in slhc ppp_generic pppox pppoe; do
|
|||
/sbin/insmod $module 2>&- >&-
|
||||
done
|
||||
|
||||
while :; do
|
||||
IFNAME=$(nvram get pppoe_ifname)
|
||||
USERNAME=$(nvram get ppp_username)
|
||||
PASSWORD=$(nvram get ppp_passwd)
|
||||
KEEPALIVE=$(nvram get ppp_redialperiod)
|
||||
KEEPALIVE=${KEEPALIVE:+lcp-echo-interval 10 lcp-echo-failure $KEEPALIVE}
|
||||
DEMAND=$(nvram get ppp_demand)
|
||||
case "$DEMAND" in
|
||||
IFNAME=$(nvram get pppoe_ifname)
|
||||
USERNAME=$(nvram get ppp_username)
|
||||
PASSWORD=$(nvram get ppp_passwd)
|
||||
KEEPALIVE=$(nvram get ppp_redialperiod)
|
||||
KEEPALIVE=${KEEPALIVE:+lcp-echo-interval 10 lcp-echo-failure $KEEPALIVE}
|
||||
DEMAND=$(nvram get ppp_demand)
|
||||
case "$DEMAND" in
|
||||
on|1|enabled)
|
||||
DEMAND=$(nvram get ppp_idletime)
|
||||
DEMAND=${IDLETIME:+demand idle $IDLETIME}
|
||||
;;
|
||||
*) DEMAND="";;
|
||||
esac
|
||||
MTU=$(nvram get ppp_mtu)
|
||||
MTU=${MTU:-1492}
|
||||
*) DEMAND="persist";;
|
||||
esac
|
||||
MTU=$(nvram get ppp_mtu)
|
||||
MTU=${MTU:-1492}
|
||||
|
||||
ifconfig $IFNAME up
|
||||
/usr/sbin/pppd nodetach \
|
||||
ifconfig $IFNAME up
|
||||
/usr/sbin/pppd nodetach \
|
||||
plugin rp-pppoe.so \
|
||||
connect /bin/true \
|
||||
usepeerdns \
|
||||
|
@ -46,6 +45,3 @@ while :; do
|
|||
$KEEPALIVE \
|
||||
nic-$IFNAME
|
||||
|
||||
# Read settings again (might have changed)
|
||||
[ -e /etc/config/network ] && . /etc/config/network
|
||||
done &
|
||||
|
|
|
@ -10,34 +10,33 @@ for module in slhc ppp_generic ppp_async ip_gre; do
|
|||
/sbin/insmod $module 2>&- >&-
|
||||
done
|
||||
|
||||
while :; do
|
||||
PPTP_PROTO="$(nvram get pptp_proto)"
|
||||
[ "$PPTP_PROTO" = "static" ] || PPTP_PROTO=""
|
||||
PPTP_PROTO="${PPTP_PROTO:-dhcp}"
|
||||
IP=$(nvram get pptp_server_ip)
|
||||
USERNAME=$(nvram get ppp_username)
|
||||
PASSWORD=$(nvram get ppp_passwd)
|
||||
KEEPALIVE=$(nvram get ppp_redialperiod)
|
||||
KEEPALIVE=${KEEPALIVE:+lcp-echo-interval 10 lcp-echo-failure $KEEPALIVE}
|
||||
DEMAND=$(nvram get ppp_demand)
|
||||
case "$DEMAND" in
|
||||
PPTP_PROTO="$(nvram get pptp_proto)"
|
||||
[ "$PPTP_PROTO" = "static" ] || PPTP_PROTO=""
|
||||
PPTP_PROTO="${PPTP_PROTO:-dhcp}"
|
||||
IP=$(nvram get pptp_server_ip)
|
||||
USERNAME=$(nvram get ppp_username)
|
||||
PASSWORD=$(nvram get ppp_passwd)
|
||||
KEEPALIVE=$(nvram get ppp_redialperiod)
|
||||
KEEPALIVE=${KEEPALIVE:+lcp-echo-interval 10 lcp-echo-failure $KEEPALIVE}
|
||||
DEMAND=$(nvram get ppp_demand)
|
||||
case "$DEMAND" in
|
||||
on|1|enabled)
|
||||
DEMAND=$(nvram get ppp_idletime)
|
||||
DEMAND=${IDLETIME:+demand idle $IDLETIME}
|
||||
;;
|
||||
*) DEMAND="";;
|
||||
esac
|
||||
MTU=$(nvram get ppp_mtu)
|
||||
MTU=${MTU:-1452}
|
||||
*) DEMAND="persist";;
|
||||
esac
|
||||
MTU=$(nvram get ppp_mtu)
|
||||
MTU=${MTU:-1452}
|
||||
|
||||
do_ifup $PPTP_PROTO $type
|
||||
do_ifup $PPTP_PROTO $type
|
||||
|
||||
# hack for some buggy ISPs
|
||||
NETMASK=$(nvram get ${type}_netmask)
|
||||
IFNAME=$(nvram get pptp_ifname)
|
||||
[ -z "$NETMASK" -o -z "$IFNAME" ] || ifconfig $IFNAME netmask $NETMASK
|
||||
# hack for some buggy ISPs
|
||||
NETMASK=$(nvram get ${type}_netmask)
|
||||
IFNAME=$(nvram get pptp_ifname)
|
||||
[ -z "$NETMASK" -o -z "$IFNAME" ] || ifconfig $IFNAME netmask $NETMASK
|
||||
|
||||
/usr/sbin/pppd nodetach \
|
||||
/usr/sbin/pppd nodetach \
|
||||
pty "/usr/sbin/pptp $IP --loglevel 0 --nolaunchpppd" \
|
||||
file /etc/ppp/options.pptp \
|
||||
connect /bin/true \
|
||||
|
@ -51,5 +50,4 @@ while :; do
|
|||
mtu $MTU mru $MTU \
|
||||
$DEMAND \
|
||||
$KEEPALIVE
|
||||
done &
|
||||
|
||||
|
|
Loading…
Reference in a new issue