wvdial and dial-on-demand(Internal)


o TeX o Ascii
o Deutsch o Korean

Support knowledgebase (hoe_wv_dod_start)
Applies to

SuSE Linux: Version 6.3
This article refers to an older version of SuSE Linux. Therefore some of the informations given in this article may be outdated or the article may contain stale links.


SuSE-INTERN:

Object:

The connection to the internet has to be made automatically, for example when Netscape is asked to retrieve an external URL. It should disconnect when the link has been idle for a certain amount of time.

Proceed as follows:

A script to initiate

The provider mentioned in [Dialer Defaults] will be called.

Extra options for configuring in the configuration file of wvdial

/etc/wvdail.conf /etc/wvdail.conf can be expanded with the following options:

Important: In the file /etc/wvdail.conf comments (startin with ;) may not be used when you use the /sbin/init.d/wvdial.dod script.


#! /bin/bash
#
# Copyright (c) 1999 SuSE GmbH Nuernberg, Germany. All rights reserved.
#
#
# parameters
# start section section section 
# restart section section section 
# start or restart the daemon with parameters found in /etc/wvdial.conf
# section is the name of a section in the /etc/wvdial.conf file
# (see man wvdial)
# stop
# stop the pppd
# hangup # hang up the telephone line 

# additional Parameters in /etc/wvdial.conf could be # Idle: sets the idle-time for waiting before hang up (deafult 180s) # Remote IP: remote IP-address (default 192.168.99.99) # Local IP: local IP-address (default 192.168.99.1) # Defaultroute: no: pppd will not set the default route to the remote ip # (default yes)

function log() { # logs the messages to system log HEAD=$0[$$] echo $MESSAGE logger -t $HEAD "$MESSAGE" }

function setpppdparam() { # time to sleep for pppd to come up WAITFORPPPD=2 CONFFILE="/etc/wvdial.conf" TMPFILE="/tmp/wvdial.dod.tmp" # extract subsection cat /etc/wvdial.conf | sed -n "/Dialer.*$SECTION/{:x;p;n;/Dialer/q;bx}" > $TMPFILE VALUE=`cat $TMPFILE | grep "Modem" | cut -f2 -d"="` if [ ! -z "$VALUE" ]; then Modem=$VALUE; fi VALUE=`cat $TMPFILE | grep "Baud" | cut -f2 -d"="` if [ ! -z "$VALUE" ]; then Baud=$VALUE; fi VALUE=`cat $TMPFILE | grep "Username" | cut -f2 -d"="` if [ ! -z "$VALUE" ]; then Username=$VALUE; fi VALUE=`cat $TMPFILE | grep "Remote IP" | cut -f2 -d"="` if [ ! -z "$VALUE" ]; then Remote_IP=$VALUE; fi VALUE=`cat $TMPFILE | grep "Local IP" | cut -f2 -d"="` if [ ! -z "$VALUE" ]; then Local_IP=$VALUE; fi VALUE=`cat $TMPFILE | grep "Idle" | cut -f2 -d"="` if [ ! -z "$VALUE" ]; then Idle=$VALUE; fi VALUE=`cat $TMPFILE | grep "Defaultroute" | cut -f2 -d"="` if [ X$VALUE = XNo -o X$VALUE = XNO -o X$VALUE = Xno ]; \ then DEFAULTROUTE="nodefaultroute"; fi rm -f $TMPFILE }

function killpppd() { if [ -e $PIDFILE ]; then MESSAGE="killing pppd process " PID=`cat $PIDFILE` MESSAGE=$MESSAGE"PID=$PID" log kill -15 $PID 2>/dev/null #kill -9 $PID 2>/dev/null rm $PIDFILE fi }

function startpppd() { # set defaults, no defaults for # Username, Modem, Baud Local_IP="192.168.99.1" Remote_IP="192.168.99.99" Idle=180 DEFAULTROUTE="defaultroute"

# get params from section "Dialer Default" SECTION=Defaults setpppdparam

# parse given section ([Dailer xxx]) parameters while [ ! -z $1 ]; do SECTION=$1 setpppdparam shift done

# start pppd in demand mode PPPPDPARAMS="$Local_IP:$Remote_IP $Modem $Baud modem crtscts $DEFAULTROUTE -detach user $Username ipcp-accept-local ipcp-accept-remote call wvdial demand idle $Idle" MESSAGE="starting pppd $PPPPDPARAMS connect \"/usr/bin/wvdial --chat $WVPARAMS\"... " pppd $PPPPDPARAMS connect "/usr/bin/wvdial --chat $WVPARAMS" &>/dev/null & PPPDPID=$! echo $PPPDPID > $PIDFILE MESSAGE=$MESSAGE"PID=$PPPDPID" log # setting dynamic - parameter for ppp - device

# waiting pppd to come up sleep $WAITFORPPPD ls /var/run/ppp?.pid | while read PIDFILE ; do if [ X$PPPDPID = X`cat $PIDFILE` ]; then DEVICE=`echo $PIDFILE | cut -c 10-13` MESSAGE="setting $DEVICE dynamic " ifconfig $DEVICE dynamic ifconfig $DEVICE | grep "DYNAMIC" -q RES=$? if [ $RES -gt 0 ]; then MESSAGE=$MESSAGE"failed" exit 1 fi MESSAGE=$MESSAGE"done" log fi done exit 0 }

# main LINKNAME=dod PIDFILE=/var/run/pppd.$LINKNAME.pid ACTION=$1 shift WVPARAMS=$@

case "$ACTION" in start) # make sure to start even when uncleanly stopped killpppd netstat --inet -p startpppd $@ netstat --inet -p ;; stop) # handle stop killpppd exit 0 ;; reload|restart) killpppd startpppd $@ ;; hangup) if [ -e $PIDFILE ]; then MESSAGE="hangup pppd connection " PID=`cat $PIDFILE` MESSAGE=$MESSAGE"PID=$PID" log kill -SIGHUP $PID #2>/dev/null exit 0 fi MESSAGE="no pppd connection" log exit 1 ;; # status) # ;; *) echo "Usage: /sbin/init.d/wvdial.dod {start [section [section [..]]]|hangup|stop|restart}" exit 1 ;; esac


Keywords:

Categories: Network

SDB-hoe_wv_dod_start, Copyright SuSE Linux AG, Nürnberg, Germany
Author: sdb@suse.de - Version: 27. Okt 1999
SuSE Linux AG - Last generated: 02. Apr 2002 by sdb (sdb_gen 1.40.0)