[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

ip-{up,down} scripts



Hi,

I noticed that the ip-{up,down} scripts are runned on _every_ ppp connections
which isn't, in mosts cases, the desired behaviour. It poses a problem for
people like me who connects to the internet with a modem with pppd and also
is on a local network with serial cables.

Here's a modification I did to the ip-{up,down} main scripts that sets
a variable that tells the scripts if the connection is local or not.
It can afterward be used by the packages script to act consequently.

It would be nice to add this to debian's ip-{up,down} scripts. Perhaps
the way I did it isn't best. Please give me some comments.

-- 
Remi Lefebvre - <remi@debian.org>
#!/bin/sh
#
# $Id: ip-up,v 1.2 1998/02/10 21:25:34 phil Exp $
#
# This script is run by the pppd after the link is established.
# It uses run-parts to run scripts in /etc/ppp/ip-up.d, so to add routes,
# set IP address, run the mailq etc. you should create script(s) there.
#
# Be aware that other packages may include /etc/ppp/ip-up.d scripts (named
# after that package), so choose local script names with that in mind.
#
# This script is called with the following arguments:
#    Arg  Name                          Example
#    $1   Interface name                ppp0
#    $2   The tty                       ttyS1
#    $3   The link speed                38400
#    $4   Local IP number               12.34.56.78
#    $5   Peer  IP number               12.34.56.99
#    $6   Optional ``ipparam'' value    foo

# The  environment is cleared before executing this script
# so the path must be reset
PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
export PATH
# These variables are for the use of the scripts run by run-parts
PPP_IFACE="$1"
PPP_TTY="$2"
PPP_SPEED="$3"
PPP_LOCAL="$4"
PPP_REMOTE="$5"
PPP_IPPARAM="$6"
export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM

# test if connecting to a local network
HOSTNAME=`hostname`
IP=`grep $HOSTNAME /etc/hosts | cut -f 1`
if [ $IP = $PPP_LOCAL ]; then
  LOCAL=1
else
  LOCAL=0
fi
export LOCAL
###

# as an additional convenience, $PPP_TTYNAME is set to the tty name,
# stripped of /dev/ (if present) for easier matching.
PPP_TTYNAME=`/usr/bin/basename "$2"`
export PPP_TTYNAME 

# Main Script starts here

run-parts /etc/ppp/ip-up.d

# last line

Reply to: