#!/bin/sh
#
# A sample script to establish PPP session(s) via rsh
#
# Adi Masputra <adi.masputra@sun.com>
# Jan 24, 2000
#

#
# You'd definitely want to change the following addresses to suit
# your network configuration
#
LOC_IP=10.0.0.1
REM_IP=10.0.0.2
NETMASK=255.255.0.0

export LOC_IP REM_IP

#
# This is the remote peer where in.rshd is running, either
# its hostname or IP address
#
PPPD_RHOST=myremotehost

#
# For this example, we assume that pppd on both local and remote
# machines reside in the same place, /usr/local/bin/pppd
#
PPPD_LOC=/usr/local/bin/pppd

#
# The location of local options file (where rsh client is running).
# Note that the sample options file included in the distribution
# may need further customizations, depending on your needs. The 'noauth'
# option specified in the file is there to simplify the example. In
# reality, you'd probably want to remove such option.
#
PPPD_LOC_OPT=/etc/ppp/options-rsh-loc

#
# The location of remote options file (where in.rshd daemon is running).
# Note that the sample options file included in the distribution
# may need further customizations, depending on your needs. The 'noauth'
# option specified in the file is there to simplify the example. In
# reality, you'd probably want to remove such option. Also note that
# the remote options file need to include the 'notty' option for this
# to work
#
PPPD_REM_OPT=/etc/ppp/options-rsh-rem

#
# The location of rsh client on the local machine
#
RSH_LOC=/bin/rsh

export PPPD_LOC PPPD_LOC_OPT PPPD_REM_OPT PPPD_RHOST RSH_LOC

#
# Uncomment the following to enable IPv6, note that the IPv6 support 
# needs to be enabled during compilation
#
# PPPD_IPV6='+ipv6 ipv6cp-use-ipaddr'
export PPPD_IPV6

#
# And execute pppd with the pty option, specifying rsh client as the
# slave side of the pseduo-tty master/slave pair.
#
exec $PPPD_LOC \
        pty '$RSH_LOC $PPPD_RHOST $PPPD_LOC $REM_IP:$LOC_IP $PPPD_IPV6 file $PPPD_REM_OPT' \
        $LOC_IP:$REM_IP netmask $NETMASK $PPPD_IPV6 file $PPPD_LOC_OPT

