#! /bin/sh
# This is the file /etc/r2d2/net.d/ip-routes used to bring up the network.
# (C) 1996,1997 W. Trmper

ROUTES_CFG="/etc/net/ip/routes.conf"

function routes () {
    local action cmdlist id
    action="$1"
    id="$2"
    cmdlist=":"
    while read  DESTINATION GATEWAY NETMASK FLAG METRIC INTERFACE ID EXTRA_OPTIONS
    do
	case "$DESTINATION" in
	    \#* | "") continue ;;
	esac
	[ "$ID" = "$id" -o "$ID" = "*" ] || continue

	GATEWAY="gw $GATEWAY"
	[ "$GATEWAY" = "gw *" -o "$GATEWAY" = "gw -" ] && GATEWAY=""

	NETMASK="netmask $NETMASK"
	[ "$" = "netmask *" ] && NETMASK=""
	[ "$action" = "del" ] && NETMASK=""

	TYPE="-net"
	case "$FLAG" in
	    *H)  TYPE="-host"; NETMASK="";;
	    *G)  TYPE="";;
	    *\!)  REJECT="reject";;
	esac

	METRIC="metric $METRIC"

	INTERFACE="dev $INTERFACE"
	[ "$INTERFACE" = "dev *" -o "$INTERFACE" = "dev " ] && INTERFACE=""

	case $action in
	    add) cmdlist="$cmdlist; route $action $TYPE $DESTINATION $GATEWAY\
		    $NETMASK $METRIC $INTERFACE $EXTRA_OPTIONS";;
	    del) cmdlist="route $action $TYPE $DESTINATION $GATEWAY $NETMASK\
		    $METRIC $INTERFACE $EXTRA_OPTIONS; $cmdlist";;
	esac
    done < $ROUTES_CFG
    eval "$cmdlist"
}


case $1 in
    start)
	routes add "$2";;
    stop)
	routes del "$2";;
    *)
	echo "Usage: $0 start|stop"
	exit 1
esac
