1*1dee92ebSDavid van Moolenbroek#!/bin/sh 2*1dee92ebSDavid van Moolenbroek# 3*1dee92ebSDavid van Moolenbroek# $NetBSD: staticroute,v 1.6 2012/05/02 15:57:15 gendalia Exp $ 4*1dee92ebSDavid van Moolenbroek# 5*1dee92ebSDavid van Moolenbroek 6*1dee92ebSDavid van Moolenbroek# PROVIDE: staticroute 7*1dee92ebSDavid van Moolenbroek# REQUIRE: network 8*1dee92ebSDavid van Moolenbroek# BEFORE: NETWORKING 9*1dee92ebSDavid van Moolenbroek 10*1dee92ebSDavid van Moolenbroek# See the route.conf(5) manual page for details. 11*1dee92ebSDavid van Moolenbroek 12*1dee92ebSDavid van Moolenbroek$_rc_subr_loaded . /etc/rc.subr 13*1dee92ebSDavid van Moolenbroek 14*1dee92ebSDavid van Moolenbroekname="staticroute" 15*1dee92ebSDavid van Moolenbroekstart_cmd="staticroute_doit Adding add" 16*1dee92ebSDavid van Moolenbroekstop_cmd="staticroute_doit Deleting delete" 17*1dee92ebSDavid van Moolenbroek 18*1dee92ebSDavid van Moolenbroekstaticroute_doit() { 19*1dee92ebSDavid van Moolenbroek retval=0 20*1dee92ebSDavid van Moolenbroek 21*1dee92ebSDavid van Moolenbroek if [ -s /etc/route.conf ]; then 22*1dee92ebSDavid van Moolenbroek echo "$1 static routes." 23*1dee92ebSDavid van Moolenbroek ( while read args; do 24*1dee92ebSDavid van Moolenbroek [ -z "$args" ] && continue 25*1dee92ebSDavid van Moolenbroek case "$args" in 26*1dee92ebSDavid van Moolenbroek "#"*) 27*1dee92ebSDavid van Moolenbroek ;; 28*1dee92ebSDavid van Moolenbroek "+"*) 29*1dee92ebSDavid van Moolenbroek if [ $2 = "add" ]; then 30*1dee92ebSDavid van Moolenbroek eval "${args#*+}" || retval=1 31*1dee92ebSDavid van Moolenbroek fi 32*1dee92ebSDavid van Moolenbroek ;; 33*1dee92ebSDavid van Moolenbroek "-"*) 34*1dee92ebSDavid van Moolenbroek if [ $2 = "delete" ]; then 35*1dee92ebSDavid van Moolenbroek eval "${args#*-}" || retval=1 36*1dee92ebSDavid van Moolenbroek fi 37*1dee92ebSDavid van Moolenbroek ;; 38*1dee92ebSDavid van Moolenbroek "!"*) 39*1dee92ebSDavid van Moolenbroek eval "${args#*!}" || retval=1 40*1dee92ebSDavid van Moolenbroek ;; 41*1dee92ebSDavid van Moolenbroek *) 42*1dee92ebSDavid van Moolenbroek eval "route -q $2 -$args" || retval=1 43*1dee92ebSDavid van Moolenbroek ;; 44*1dee92ebSDavid van Moolenbroek esac 45*1dee92ebSDavid van Moolenbroek done < /etc/route.conf ) 46*1dee92ebSDavid van Moolenbroek fi 47*1dee92ebSDavid van Moolenbroek 48*1dee92ebSDavid van Moolenbroek return $retval 49*1dee92ebSDavid van Moolenbroek} 50*1dee92ebSDavid van Moolenbroek 51*1dee92ebSDavid van Moolenbroekload_rc_config $name 52*1dee92ebSDavid van Moolenbroekrun_rc_command "$1" 53