xref: /minix3/etc/rc.d/staticroute (revision 1dee92ebe9d36c122dd2fee6f8e8b3cb279ddbfc)
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