#!/sbin/runscript # Copyright 1999-2004 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/net-dialup/speedtouch/files/speedtouch.rc6,v 1.4 2004/03/04 19:14:02 vapier Exp $ PPP=$(which pppd) MODEM_RUN=$(which modem_run) MOUNT=$(which mount) UMOUNT=$(which umount) IFCONFIG=$(which ifconfig) MAX_LOOP=60 check_modem_run() { [ "${MICROCODE:-set}" = set ] && ( eend 1 "Please define \$MICROCODE in /etc/conf.d/speedtouch" ; exit 1 ) [ -f ${MICROCODE} ] ; eend $? "Failed to find the microcode." || exit 1 [ -x ${MODEM_RUN} ] ; eend $? "Failed to find the 'modem_run' executable." || exit 1 # usbdevfs is up ? ( ${MOUNT} | grep -q usbdevfs ) || $MOUNT none /proc/bus/usb -t usbdevfs > /dev/null 2>&1 sleep 1 ## Let's check if modem_run is UP. If not let's try lauching it (again)? ( ps -e | grep -q modem_run ) || $MODEM_RUN -v $VERBOSE -m $MODEM_RUN_EXTRAOPTS -f $MICROCODE RETURNED=$? sleep 1 if [ $RETURNED -ne 0 ]; then # modem_run CAN'T run eerror "Can't load the microcode !!" eerror "Please detach and attach again your modem to the USB port to unload the microcode." eerror "Then run '/etc/init.d/speedtouch start'" return 1 fi } depend() { need localmount modules } start() { ebegin "Starting Speedtouch ADSL Modem..." check_modem_run || eend 1 "Failed to start Speedtouch ADSL Modem..." [ ! -z $PPP ] ; eend $? "Failed to find ppp" || exit 1 [ -f "/etc/ppp/peers/$PEER" ] ; eend $? "Failed to find peer configuration" || exit 1 [ -x $IFCONFIG ] ; eend $? "Failed to find 'ifconfig'" || exit 1 ## Allright. Start pppd. einfo "Launching the PPP daemon..." rm -f /var/run/pppoa*.pid start-stop-daemon --start --exec $PPP call $PEER > /dev/null 2>&1 RETURNED=1 LOOPS=0 # Loop until connection has been established with the ISP # or the transaction has failed while [ $RETURNED -ne 0 ] && [ $LOOPS -le $MAX_LOOP ] ; do $IFCONFIG | grep -q 'ppp' RETURNED=$? LOOPS=`expr $LOOPS + 1` sleep 1 done if [ $LOOPS -gt $MAX_LOOP ] && [ $RETURNED -ne 0 ] ; then eerror "Failed to start the PPP daemon" ; return 1 fi eend $? "Failed to start Speedtouch ADSL Modem..." } stop () { ebegin "Shutting down the SpeedTouch ADSL Modem..." start-stop-daemon --stop --pidfile /var/run/ppp0.pid pppd eend $? "Failed to stop 'pppd'." }