wanpipe/samples/diff

1008 lines
23 KiB
Plaintext

--- wanrouter 2007-08-27 18:28:49.000000000 -0400
+++ /usr/sbin/wanrouter 2007-09-14 12:39:15.000000000 -0400
@@ -1,7 +1,8 @@
#!/bin/bash -p
+
# wanrouter WANPIPE WAN Router Initialization Script.
#
-# copyright (c) 1999-2007, Sangoma Technologies Inc.
+# copyright (c) 1999-2002, Sangoma Technologies Inc.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -119,6 +120,11 @@
function cleanup ()
{
eval "rm -f $WAN_PROG_LOCK 2> /dev/null > /dev/null"
+
+ #Check module checks if modules are loaded and updates
+ #the subsys lock for LINUX
+ check_module
+
exit $1
}
@@ -268,6 +274,28 @@
return 0
}
+function check_module () {
+
+ if [ $OSYSTEM = "Linux" ]; then
+ [ -d "$ROUTER_PROC" ] && {
+ touch $WAN_LOCK 2> /dev/null
+ return 0
+ }
+ else
+ for i in $WAN_DRIVERS
+ do $MODULE_STAT | grep -q $i && {
+ touch $WAN_LOCK 2> /dev/null
+ return 0
+ }
+ done
+ fi
+
+ # Driver is not loaded
+ if [ -e $WAN_LOCK ]; then
+ rm -f $WAN_LOCK 2> /dev/null
+ fi
+ return 1;
+}
function load_driver () {
@@ -307,6 +335,19 @@
return $err
}
+#--------------------------------------------------------------------------
+# Create character device /dev/wanrouter
+#--------------------------------------------------------------------------
+create_cdev()
+{
+ if [ $OSYSTEM = "FreeBSD" ]; then
+ [ ! -e "$CDEV_WANROUTER" ] && {
+ mknod $CDEV_WANROUTER c $CDEV_MAJOR $CDEV_MINOR
+ }
+ fi
+}
+
+
# ----------------------------------------------------------------------------
# Start WAN wanrouter.
# o create log file
@@ -319,6 +360,11 @@
{
local opt=${1:-NO}
+ check_module
+ if [ $? -eq 0 ]; then
+ return 0
+ fi
+
if [ $opt != silent ]; then
echo "Starting WAN Router..."
echo "`date`: starting WAN router" >> $WAN_LOG
@@ -444,22 +490,13 @@
echo "done."
fi
+ # Create char devices (if needed)
+ create_cdev
+
touch $WANPIPE_IS_RUNNING
return 0
}
-#--------------------------------------------------------------------------
-# Create character device /dev/wanrouter
-#--------------------------------------------------------------------------
-create_cdev()
-{
- if [ $OSYSTEM = "FreeBSD" ]; then
- [ ! -e "$CDEV_WANROUTER" ] && {
- mknod $CDEV_WANROUTER c $CDEV_MAJOR $CDEV_MINOR
- }
- fi
-}
-
router_config()
{
# Configure router.
@@ -699,6 +736,186 @@
}
}
+# ----------------------------------------------------------------------------
+# Configure devices (all or single).
+# ----------------------------------------------------------------------------
+config_devices()
+{
+ local devices=$*
+
+ for dev in $devices; do
+ if [ $OSYSTEM = "Linux" ] && [ ! -e "$ROUTER_PROC/$dev" ]; then
+ echo -e "Error: Device $dev is not supported by kernel\n"
+ continue
+ fi
+ WAN_CONF=$WAN_CONF_DIR/$dev.conf
+
+ check_file $WAN_CONF || cleanup 1
+
+ check_exists $dev
+ if [ $? -ne 0 ]; then
+ echo "Error: Device $dev does not exist/not allocated."
+ echo " Check the messages log for the number of probed "
+ echo " devices."
+ echo
+ continue
+ fi
+
+ check_dev_running $dev
+ if [ $? -eq 0 ]; then
+ echo "Error: Device $dev is already running"
+ echo -e " Run 'wanrouter stop $dev' first\n"
+ continue
+ fi
+
+ #Since we changed the name of dev above,
+ #we must check if we are running ft1 device,
+ #output a correct message
+ if [ $ft1_or_wanpipe -gt 0 ]; then
+ echo "Starting up device: $dev, FT1 config mode"
+ echo "Starting up device: $dev, FT1 config mode" >> $WAN_LOG
+ else
+ echo "Starting up device: $dev"
+ echo "Starting up device: $dev" >> $WAN_LOG
+ fi
+
+ router_config $WAN_CONF $dev
+#NC: Jul 22 2003
+#Just because one card
+#fails to load do not stop
+#other cards from loading
+# if [ $? -ne 0 ]; then
+# #echo "Exiting rc = 3"
+# cleanup 3
+# fi
+ done
+
+ return 0
+}
+
+# ----------------------------------------------------------------------------
+# Unconfigure devices (all or single).
+# ----------------------------------------------------------------------------
+unconfig_devices()
+{
+ local devices=$*
+
+ #Stop all routers but check if device
+ #is running first
+ for dev in $devices; do
+ WAN_CONF=$WAN_CONF_DIR/$dev.conf
+
+ #If we are starting ft1 device there are no
+ #interfaces.
+ if [ $ft1_or_wanpipe -gt 0 ]; then
+ echo "Shutting down device: $dev, FT1 config mode"
+ echo "Shutting down device: $dev, FT1 config mode" >> $WAN_LOG
+ else
+ echo "Shutting down device: $dev"
+ echo "Shutting down device: $dev" >> $WAN_LOG
+ fi
+ router_unconfig $WAN_CONF $dev
+
+ done
+
+ #Check if any devices are still running
+ # If YES: don't unload the modules, just printout
+ # the list of active devices
+ # If NO: unload modules
+
+ check_and_print_still_running && cleanup 0
+
+ cd $WAN_HOME
+ echo -e "No devices running, Unloading Modules"
+ remove_cdev
+ unload_module
+
+ for dev in $devices; do
+ WAN_CONF=$WAN_CONF_DIR/$dev.conf
+
+ INTERFACES=`grep ".*=.*$dev" -i $WAN_CONF | cut -d' ' -f1 2> /dev/null`
+ for ifname in $INTERFACES; do
+ ifname=${ifname%%=*}
+ wanrouter_script stop $dev $ifname
+ done
+ wanrouter_script stop $dev
+
+ done
+
+ return 0
+}
+
+# ----------------------------------------------------------------------------
+# Configure wan interfaces (all or single).
+# ----------------------------------------------------------------------------
+config_interfaces()
+{
+ local devices=$*
+
+ for dev in $devices; do
+
+ WAN_CONF=$WAN_CONF_DIR/$dev.conf
+
+ check_file $WAN_CONF || cleanup 1
+
+ interf_config $dev $WAN_CONF
+
+#NC: Jul 22 2003
+#Just because one interface
+#fails to load, do not stop all
+#other interfaces.
+# if [ $? -ne 0 ]; then
+# cleanup 4
+# fi
+ done
+
+ for dev in $devices; do
+ WAN_CONF=$WAN_CONF_DIR/$dev.conf
+ INTERFACES=`grep ".*=.*$dev" -i $WAN_CONF | cut -d' ' -f1 2> /dev/null`
+ for ifname in $INTERFACES; do
+ ifname=${ifname%%=*}
+ wanrouter_script start $dev $ifname
+ done
+ wanrouter_script start $dev
+ done
+
+ return 0
+}
+
+# ----------------------------------------------------------------------------
+# unconfigure interface (all or single).
+# ----------------------------------------------------------------------------
+unconfig_interfaces()
+{
+ local devices=$*
+
+ #Stop all interfaces, but check whether
+ #device is running first
+ for dev in $devices; do
+
+ if [ "$dev" = "" ]; then
+ continue;
+ fi
+
+ WAN_CONF=$WAN_CONF_DIR/$dev.conf
+
+ #Check that all configuration files exist
+ check_file $WAN_CONF || cleanup 1
+
+ check_exists $dev
+ if [ $? -eq 0 ]; then
+ check_dev_running $dev
+ if [ $? -eq 0 ]; then
+ WAN_CONF=$WAN_CONF_DIR/$dev.conf
+ interf_down $dev $WAN_CONF
+ fi
+ fi
+ done
+
+ return 0
+}
+
+
router_unconfig()
{
if [ $OSYSTEM != "Linux" ]; then
@@ -716,6 +933,7 @@
# Unload WAN drivers.
}
+
#----------------------------------------------------------------------------
# Remove character device /dev/wanrouter
#----------------------------------------------------------------------------
@@ -908,9 +1126,9 @@
{
for dev in $WAN_DEVICES; do
check_file "$WAN_CONF_DIR/$dev.conf" || {
- echo -e "\n$SCRIPT: Error, $WAN_CONF_DIR/$dev.conf not found!\n";
- return 1;
- }
+ echo -e "\n$SCRIPT: Error, $WAN_CONF_DIR/$dev.conf not found!\n";
+ return 1;
+ }
done
return 0;
}
@@ -968,27 +1186,6 @@
return $rc
}
-function check_module () {
-
- if [ $OSYSTEM = "Linux" ]; then
- [ -d "$ROUTER_PROC" ] && {
- return 0
- }
- else
- for i in $WAN_DRIVERS
- do $MODULE_STAT | grep -q $i && {
- return 0
- }
- done
- fi
- # Driver is not loaded
- if [ $OSYSTEM != "Linux" ]; then
- rm -f $WAN_LOCK 2> /dev/null
- fi
- return 1;
-}
-
-
function check_exists () {
local device=$1
@@ -1223,16 +1420,22 @@
check_osystem () {
if [ $OSYSTEM = "Linux" ]; then
- get_distrib
- if [ $? -eq 1 ]; then
- if [ $WAN_LOCK != "/var/lock/subsys/wanrouter" ]; then
- echo -e "\nREDHAT Detected changing WAN_LOCK location"
- echo -e "to /var/lock/subsys/wanrouter"
- echo -e "To avoid this message change the WAN_LOCK directory"
- echo -e "in $WAN_CONF_DIR/wanrouter.rc to /var/lock/subsys/wanrouter\n"
- WAN_LOCK=/var/lock/subsys/wanrouter
- fi
+ if [ -d $WAN_LOCK_DIR ]; then
+ return 0
+ else
+ echo
+ echo "Warning: WAN_LOCK_DIR = $WAN_LOCK_DIR does not exist!"
+ echo "Please update the WAN_LOCK_DIR in /etc/wanpipe/wanrouter.rc"
+ echo
+ fi
+
+ if [ -d /var/lock/subsys ]; then
+ WAN_LOCK_DIR=/var/lock/subsys
+ elif [ -d /var/lock ]; then
+ WAN_LOCK_DIR=/var/lock
+ else
+ WAN_LOCK_DIR=$WAN_CONF_DIR
fi
fi
@@ -1564,8 +1767,8 @@
local err=0
echo
- if [ ! -d /etc/wanpipe ]; then
- echo "Error: /etc/wanpipe not found"
+ if [ ! -d ${WAN_HOME} ]; then
+ echo "Error: ${WAN_HOME} not found"
echo "Reason: Wanpipe not installed properly"
echo "Solution: Re-install wanpipe"
return
@@ -1587,7 +1790,7 @@
unload_module
fi
- if [ ! -f /etc/wanpipe/wanpipe1.conf ]; then
+ if [ ! -f ${WAN_HOME}/wanpipe1.conf ]; then
echo "Warning: wanpipe1.conf configuration file not found"
echo "Reason: did not run /usr/sbin/wancfg to create it"
echo "Solution: run /usr/sbin/wancfg :)"
@@ -1683,6 +1886,34 @@
WAN_DEVICES=
}
+function read_meta_conf ()
+{
+
+ if [ $OSYSTEM = "Linux" ]; then
+ WAN_HOME=/etc/wanpipe
+ elif [ $OSYSTEM = "FreeBSD" -o $OSYSTEM = "OpenBSD" ]; then
+ WAN_HOME=/usr/local/etc/wanpipe
+ wanrouter_rc_file=""
+ if [ -r /etc/rc.conf ]; then
+ . /etc/rc.conf
+ fi
+ if [ -n "$wanrouter_rc_file" ]; then
+ WAN_HOME=${wanrouter_rc_file%/*}
+ fi
+ fi
+ WAN_CONF_DIR=$WAN_HOME
+ META_CONF=$WAN_HOME/wanrouter.rc
+ WAN_INTR_DIR=$WAN_HOME/interfaces
+
+ # Read meta-configuration file.
+ if [ -f $META_CONF ]
+ then . $META_CONF
+ else
+ return 1
+ fi
+ return 0
+}
+
function meta_conf_compatiblity ()
{
WAN_CONF_DIR=$WANPIPE_CONF_DIR
@@ -1754,36 +1985,42 @@
done
}
+# FIXME: Add code for BSD
function wan_force_unload_modules()
{
- if [ -e "$ROUTER_PROC/status" ]; then
- wp_list=`cat $ROUTER_PROC/status | cut -d' ' -f1 | grep wanpipe | sort -r`
- if [ -z $list ]; then
- mod_list=`cat /proc/modules | grep wan | cut -d ' ' -f1 | xargs`
- for tmp_mod in $mod_list
- do
- eval "rmmod $tmp_mod >> /dev/null 2>> /dev/null"
- done
+ if [ $OSYSTEM = "Linux" ]; then
+ if [ -e "$ROUTER_PROC/status" ]; then
+ wp_list=`cat $ROUTER_PROC/status | cut -d' ' -f1 | grep wanpipe | sort -r`
+ if [ -z $list ]; then
+ mod_list=`cat /proc/modules | grep wan | cut -d ' ' -f1 | xargs`
+ for tmp_mod in $mod_list
+ do
+ eval "rmmod $tmp_mod >> /dev/null 2>> /dev/null"
+ done
+ fi
fi
fi
}
+# FIXME: Add code for BSD
function stop_running_wanpipes ()
{
- if [ -e "$ROUTER_PROC/status" ]; then
- wp_list=`cat $ROUTER_PROC/status | cut -d' ' -f1 | grep wanpipe | sort -r`
-
- for list in $wp_list
- do
- list=${list// /};
- if [ ! -z $list ]; then
- eval "rm -f $WAN_PROG_LOCK 2> /dev/null > /dev/null"
- wanrouter stop $list
- fi
- done
-
- wan_force_unload_modules
+ if [ $OSYSTEM = "Linux" ]; then
+ if [ -e "$ROUTER_PROC/status" ]; then
+ wp_list=`cat $ROUTER_PROC/status | cut -d' ' -f1 | grep wanpipe | sort -r`
+
+ for list in $wp_list
+ do
+ list=${list// /};
+ if [ ! -z $list ]; then
+ eval "rm -f $WAN_PROG_LOCK 2> /dev/null > /dev/null"
+ wanrouter stop $list
+ fi
+ done
+
+ wan_force_unload_modules
+ fi
fi
}
@@ -1861,10 +2098,6 @@
OSYSTEM=`uname -s`
RELEASE=`uname -r`
PROD=wanpipe
-WAN_HOME=/etc/wanpipe
-WAN_CONF_DIR=$WAN_HOME
-META_CONF=$WAN_HOME/wanrouter.rc
-WAN_INTR_DIR=$WAN_HOME/interfaces
SCRIPT=wanrouter
REDHAT=/usr/src/redhat
ROUTER_PROC=/proc/net/wanrouter
@@ -1883,7 +2116,7 @@
RUGGEDCOM=No
if [ $OSYSTEM = "Linux" ]; then
- ROUTER_VERSION=3.1.4.1
+ ROUTER_VERSION=beta1-2.3.5
IFCONFIG_LIST=ifconfig
MODULE_STAT=lsmod
WAN_DRIVERS="wanpipe"
@@ -2042,14 +2275,11 @@
trap '' 2
init_meta_conf
-
-# Read meta-configuration file.
-if [ -f $META_CONF ]
-then . $META_CONF
-else
+read_meta_conf
+if [ $? -ne 0 ]; then
echo "$SCRIPT: Error: $META_CONF not found!"
exit 1;
-fi
+fi
if [ "$WANPIPE_CONF_DIR" != "" -a "$WAN_CONF_DIR" = "" ] || [ "$WAN_ADSL_LIST" = "" ]; then
meta_conf_compatiblity
@@ -2073,6 +2303,10 @@
check_osystem
+#Check osystem confirms the WAN_LOCK directory
+WAN_LOCK=$WAN_LOCK_DIR/wanrouter
+
+
if [ ! -f $WAN_ADSL_LIST ]; then
generate_adsl_list
fi
@@ -2131,12 +2365,12 @@
fi
fi
-WAN_LOCK=$WAN_LOCK_DIR/wanrouter
echo
# If modules doesn't loaded remove all lock file from WAN_LOCK_DIR.
check_module
+ft1_or_wanpipe=0
# See how we were called.
case "$1" in
start)
@@ -2151,49 +2385,9 @@
cleanup 2
fi
- create_cdev
-
- for dev in $WAN_DEVICES; do
- if [ $OSYSTEM = "Linux" ] && [ ! -e "$ROUTER_PROC/$dev" ]; then
- echo -e "Error: Device $dev is not supported by kernel\n"
- continue
- fi
- WAN_CONF=$WAN_CONF_DIR/$dev.conf
- echo "Starting up device: $dev"
- echo "Starting up device: $dev" >> $WAN_LOG
- router_config $WAN_CONF $dev
-#NC: Jul 22 2003
-#Just because one card
-#fails to load do not stop
-#other cards from loading
-# if [ $? -ne 0 ]; then
-# #echo "Exiting rc = 3"
-# cleanup 3
-# fi
- done
-
- for dev in $WAN_DEVICES; do
- WAN_CONF=$WAN_CONF_DIR/$dev.conf
- interf_config $dev $WAN_CONF
-
-#NC: Jul 22 2003
-#Just because one interface
-#fails to load, do not stop all
-#other interfaces.
-# if [ $? -ne 0 ]; then
-# cleanup 4
-# fi
- done
+ config_devices $WAN_DEVICES
- for dev in $WAN_DEVICES; do
- WAN_CONF=$WAN_CONF_DIR/$dev.conf
- INTERFACES=`grep ".*=.*$dev" -i $WAN_CONF | cut -d' ' -f1 2> /dev/null`
- for ifname in $INTERFACES; do
- ifname=${ifname%%=*}
- wanrouter_script start $dev $ifname
- done
- wanrouter_script start $dev
- done
+ config_interfaces $WAN_DEVICES
wanrouter_script start
@@ -2215,14 +2409,9 @@
check_file $WAN_CONF || cleanup 1
- check_module
+ load_module
if [ $? -ne 0 ]; then
-
- load_module
- if [ $? -ne 0 ]; then
- cleanup 2
- fi
- create_cdev
+ cleanup 2
fi
#If we are starting FT1 driver, we have to check
@@ -2232,53 +2421,19 @@
dev="wanpipe$ft1_or_wanpipe"
fi
- check_exists $dev
- if [ $? -ne 0 ]; then
- echo "Error: Device $dev does not exist/not allocated."
- echo " Check the messages log for the number of probed "
- echo " devices."
- echo
- cleanup 1
- fi
-
- check_dev_running $dev
- if [ $? -eq 0 ]; then
- echo "Error: Device $dev is already running"
- echo -e " Run 'wanrouter stop $dev' first\n"
- cleanup 1
- fi
-
- #Since we changed the name of dev above,
- #we must check if we are running ft1 device,
- #output a correct message
- if [ $ft1_or_wanpipe -gt 0 ]; then
- echo "Starting up device: $dev, FT1 config mode"
- echo "Starting up device: $dev, FT1 config mode" >> $WAN_LOG
- else
- echo "Starting up device: $dev"
- echo "Starting up device: $dev" >> $WAN_LOG
- fi
- router_config $WAN_CONF $dev
+ config_devices $dev
if [ $? -ne 0 ]; then
cleanup 3
fi
-
+
#When loading ft1 device there are not interfaces
if [ $ft1_or_wanpipe -eq 0 ]; then
- interf_config $dev $WAN_CONF
+ config_interfaces $dev
if [ $? -ne 0 ]; then
cleanup 4
fi
fi
-
- INTERFACES=`grep ".*=.*$dev" -i $WAN_CONF | cut -d' ' -f1 2> /dev/null`
- for ifname in $INTERFACES; do
- ifname=${ifname%%=*}
- wanrouter_script start $dev $ifname
- done
- wanrouter_script start $dev
-
else
#ROUTER START WANPIPE INTERFACE
@@ -2301,9 +2456,9 @@
check_file $WAN_CONF || cleanup 1
- check_module
+ load_module
if [ $? -ne 0 ]; then
- load_module
+ cleanup 2
fi
eval "$IFCONFIG_LIST | grep -w $if_name > /dev/null 2> /dev/null"
@@ -2368,52 +2523,9 @@
WAN_DEVICES=$tmp_dev_list
fi
- #Stop all interfaces, but check whether
- #device is running first
- for dev in $WAN_DEVICES; do
-
- if [ "$dev" = "" ]; then
- continue;
- fi
-
- check_exists $dev
- if [ $? -eq 0 ]; then
- check_dev_running $dev
- if [ $? -eq 0 ]; then
- WAN_CONF=$WAN_CONF_DIR/$dev.conf
- interf_down $dev $WAN_CONF
- fi
- fi
- done
-
- #Stop all routers but check if device
- #is running first
- for dev in $WAN_DEVICES; do
- WAN_CONF=$WAN_CONF_DIR/$dev.conf
- echo "Shutting down device: $dev"
- echo "Shutting down device: $dev" >> $WAN_LOG
- router_unconfig $WAN_CONF $dev
- done
-
- #Check if any devices are still running
- # If YES: don't unload the modules, just printout
- # the list of active devices
- # If NO: unload modules
- check_and_print_still_running && cleanup 0
-
- echo -e "No devices running, Unloading Modules"
- remove_cdev
- unload_module
+ unconfig_interfaces $WAN_DEVICES
- for dev in $WAN_DEVICES; do
- WAN_CONF=$WAN_CONF_DIR/$dev.conf
- INTERFACES=`grep ".*=.*$dev" -i $WAN_CONF | cut -d' ' -f1 2> /dev/null`
- for ifname in $INTERFACES; do
- ifname=${ifname%%=*}
- wanrouter_script stop $dev $ifname
- done
- wanrouter_script stop $dev
- done
+ unconfig_devices $WAN_DEVICES
wanrouter_script stop
@@ -2432,11 +2544,6 @@
dev=$($GET_RC)
rm -f $RC
- WAN_CONF=$WAN_CONF_DIR/$dev.conf
-
- #Check that all configuration files exist
- check_file $WAN_CONF || cleanup 1
-
#Check that modules are up and running
check_module
if [ $? -ne 0 ]; then
@@ -2452,39 +2559,12 @@
dev="wanpipe$ft1_or_wanpipe"
fi
- #If we are starting ft1 device there are no
- #interfaces.
- if [ $ft1_or_wanpipe -gt 0 ]; then
- echo "Shutting down device: $dev, FT1 config mode"
- echo "Shutting down device: $dev, FT1 config mode" >> $WAN_LOG
- else
- interf_down $dev $WAN_CONF
- echo "Shutting down device: $dev"
- echo "Shutting down device: $dev" >> $WAN_LOG
+ if [ $ft1_or_wanpipe -eq 0 ]; then
+ unconfig_interfaces $dev
fi
- router_unconfig $WAN_CONF $dev
+ unconfig_devices $dev
- #Check if any devices are still running
- # If YES: don't unload the modules, just printout
- # the list of active devices
- # If NO: unload modules
-
- check_and_print_still_running && cleanup 0
-
- cd $WAN_HOME
- echo -e "No devices running, Unloading Modules"
- remove_cdev
- unload_module
-
- INTERFACES=`grep ".*=.*$dev" -i $WAN_CONF | cut -d' ' -f1 2> /dev/null`
- for ifname in $INTERFACES; do
- ifname=${ifname%%=*}
- wanrouter_script stop $dev $ifname
- done
-
- wanrouter_script stop $dev
-
[ -f $WAN_CONF_DIR/$FT1_CONF ] && rm -f $WAN_CONF_DIR/$FT1_CONF
else
@@ -2533,6 +2613,121 @@
fi
;;
+ start_dev)
+
+ if [ -z $2 ]; then
+ # WANROUTER START_DEV
+
+ check_config || cleanup 1
+
+ load_module
+ if [ $? -ne 0 ]; then
+ cleanup 2
+ fi
+
+ config_devices $WAN_DEVICES
+
+ elif [ -z $3 ]; then
+ #ROUTER START_DEV WANPIPE
+
+ dev=$2
+
+ load_module
+ if [ $? -ne 0 ]; then
+ cleanup 2
+ fi
+
+ config_devices $dev
+ if [ $? -ne 0 ]; then
+ cleanup 3
+ fi
+ fi
+ ;;
+
+ stop_dev)
+
+ if [ -z $2 ]; then
+ #WANROUTER STOP_DEV
+
+ check_module
+ if [ $? -ne 0 ]; then
+ unload_module
+ remove_cdev
+ echo -e "Router is already stopped !\n"
+ cleanup 1
+ fi
+
+ #Check that all wanpipe#.conf file defined in
+ # WAN_DEVICES exist
+ check_config || {
+ unload_module
+ remove_cdev
+ echo -e "No devices running, Unloading Modules"
+ cleanup 1
+ }
+
+ if [ "$WAN_DEVICES_REV_STOP_ORDER" = "YES" ]; then
+ tmp_dev_list=
+ for dev in $WAN_DEVICES; do
+ tmp_dev_list="$dev ""$tmp_dev_list"
+ done
+ WAN_DEVICES=$tmp_dev_list
+ fi
+
+ unconfig_devices $WAN_DEVICES
+
+ wanrouter_script stop
+
+ elif [ -z $3 ]; then
+ #WANROUTER STOP_DEV WANPIPE
+
+ dev=$2
+
+ if [ "$dev" = "all" ]; then
+ stop_running_wanpipes
+ cleanup 0
+ fi
+
+ #Check that modules are up and running
+ check_module
+ if [ $? -ne 0 ]; then
+ unload_module
+ echo -e "Router is already stopped !\n";
+ cleanup 1;
+ fi
+
+ unconfig_devices $dev
+ fi
+ ;;
+
+ start_ip)
+
+ if [ -z $2 ]; then
+ # WANROUTER START_IP
+ check_config || cleanup 1
+
+ config_interfaces $WAN_DEVICES
+
+ wanrouter_script start
+
+ elif [ -z $3 ]; then
+ #ROUTER START_IP WANPIPE
+ config_interfaces $2
+ fi
+ ;;
+
+ stop_ip)
+
+ if [ -z $2 ]; then
+ #WANROUTER STOP_IP
+ unconfig_interfaces $WAN_DEVICES
+
+ elif [ -z $3 ]; then
+ #WANROUTER STOP_IP WANPIPE
+ unconfig_interfaces $2
+ fi
+ ;;
+
script)
#Debug Statement, used to test the script option
@@ -2576,6 +2771,31 @@
fi
cleanup 0;
;;
+
+ restart_dev)
+ eval "rm -f $WAN_PROG_LOCK 2> /dev/null > /dev/null"
+ if [ "$2" = "" ]; then
+ $0 stop_dev;
+ $0 start_dev;
+ elif [ "$3" = "" ]; then
+ $0 stop_dev $2;
+ $0 start_dev $2;
+ fi
+ cleanup 0;
+ ;;
+
+ restart_ip)
+ eval "rm -f $WAN_PROG_LOCK 2> /dev/null > /dev/null"
+ if [ "$2" = "" ]; then
+ $0 stop_ip;
+ $0 start_ip;
+ elif [ "$3" = "" ]; then
+ $0 stop_ip $2;
+ $0 start_ip $2;
+ fi
+ cleanup 0;
+ ;;
+
modules)
if [ $OSYSTEM = "Linux" ]; then
@@ -2618,14 +2838,12 @@
if [ $OSYSTEM = "Linux" ]; then
cat /proc/net/wanrouter/hwprobe_verbose
else
- create_cdev
wanconfig hwprobe verbose
fi
else
if [ $OSYSTEM = "Linux" ]; then
cat /proc/net/wanrouter/hwprobe
else
- create_cdev
wanconfig hwprobe
fi
fi
@@ -2708,21 +2926,22 @@
echo -e " wanrouter start : Starts all devices specified in"
echo -e " $WAN_CONF_DIR/wanrouter.rc WAN_DEVICES\n"
echo -e " wanrouter stop : Stops all devices specified in"
- echo -e " $WAN_CONF_DIR/wanrouter.rc WAN_DEVICES\n"
-
+ echo -e " $WAN_CONF_DIR/wanrouter.rc WAN_DEVICES\n"
echo -e " wanrouter start wanpipe# : Start a single device\n"
echo -e " wanrouter stop wanpipe# : Stops a single device"
echo -e " (# can range from 1 to 16)\n"
+ if [ $OSYSTEM = "Linux" ]; then
+ echo -e " wanrouter start wanpipe# if_name : Start a single interface on device\n"
+ echo -e " wanrouter stop wanpipe# if_name : Stops a single interface on device"
+ echo -e " (# can range from 1 to 16)\n"
+
+ fi
echo -e " wanrouter restart : Restart all devices specified in"
echo -e " $WAN_CONF_DIR/wanrouter.rc WAN_DEVICES\n"
echo -e " wanrouter restart wanpipe# : Restart a single device"
echo -e " (# can range from 1 to 16)\n"
echo
if [ $OSYSTEM = "Linux" ]; then
- echo -e " wanrouter start wanpipe# if_name : Start a single interface on device\n"
- echo -e " wanrouter stop wanpipe# if_name : Stops a single interface on device"
- echo -e " (# can range from 1 to 16)\n"
-
echo -e " wanrouter restart wanpipe# if_name : Restart a single interface on device"
echo -e " (# can range from 1 to 16)\n"
echo