summaryrefslogtreecommitdiff
path: root/share/sushi/network/interfaces/interface/script
blob: 6962fd5e2f756670fa99be0307c37649d5c10fc1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#!/bin/sh
# $NetBSD: script,v 1.3 2001/08/01 09:10:57 garbled Exp $

IFFILE="/etc/ifconfig.$1"
MTU=`echo "$12" | sed -e 's/^0*//'`
IFS=" "
ALIASES=`cat /etc/ifconfig.$1 | grep alias`
unset IFS

if [ "$2" = "boot" -o "$2" = "both" ]; then
	echo -n "inet $3" > $IFFILE
	if [ ! -z $4 ]; then
		echo -n " netmask $4" >> $IFFILE
	fi
	if [ ! -z $5 ]; then
		echo -n " broadcast $5" >> $IFFILE
	fi
	echo >> $IFFILE
	if [ ! -z $6 ]; then
		echo -n "media $6" >> $IFFILE
	fi
	if [ ! -z $7 ]; then
		echo -n " mediaopt $7" >> $IFFILE
	fi
	echo >> $IFFILE
	if [ ! -z $8 ]; then
		echo -n "inet6 $8" >> $IFFILE
	fi
	if [ ! -z $9 ]; then
		echo -n " prefixlen $9" >> $IFFILE
	fi
	echo >> $IFFILE
	if [ ! -z $10 ]; then
		echo -n "nwid "\""$10"\""" >> $IFFILE
	fi
	if [ ! -z $11 ]; then
		LINK=`echo "$11" | sed -e 's/,/ /'`
		echo -n " $LINK" >> $IFFILE
	fi
	ifconfig -m $1 | grep 'Ethernet' >/dev/null
	if [ "$?" != "0" -o "$MTU" != "1500" ]; then 
		if [ ! -z $MTU ]; then
			echo -n " mtu $MTU" >> $IFFILE
		fi
	fi
	if [ ! -z $13 -a $13 -ne 0 ]; then
		echo -n " metric $13" >> $IFFILE
	fi
	echo >> $IFFILE
	echo "$ALIASES" >> $IFFILE
	IFS=" "
	IFCON=`cat $IFFILE | sed -e 's/^$//' | sed -e 's/^ *//'`
	echo "$IFCON" > $IFFILE
	chown root:wheel $IFFILE
	chmod 644 $IFFILE
	echo "Modifications have been written to $IFFILE"
	unset $IFS
	echo
	echo "$IFCON"
	echo ""
fi

if [ "$2" = "now" -o "$2" = "both" ]; then
	NET=`echo -n "$1 inet $3"`
	NET2=`echo -n "$1"`
	if [ ! -z $4 ]; then
		NET=`echo -n " $NET netmask $4"`
	fi
	if [ ! -z $5 ]; then
		NET=`echo -n " $NET broadcast $5"`
	fi
	if [ ! -z $6 ]; then
		NET=`echo -n " $NET media $6"`
	fi
	if [ ! -z $7 ]; then
		NET=`echo -n " $NET mediaopt $7"`
	fi
	if [ ! -z $8 ]; then
		NET2=`echo -n " $NET2 inet6 $8"`
	fi
	if [ ! -z $9 ]; then
		NET2=`echo -n " $NET2 prefixlen $9"`
	fi
	if [ ! -z $10 ]; then
		NET=`echo -n " $NET nwid "\""$10"\"""`
	fi
	if [ ! -z $11 ]; then
		LINK=`echo "$11" | sed -e 's/,/ /'`
		NET=`echo -n " $NET $LINK"`
	fi
	ifconfig -m $1 | grep 'Ethernet' >/dev/null
	if [ "$?" != "0" -o "$MTU" != "1500" ]; then 
		if [ ! -z $MTU ]; then
			NET=`echo -n " $NET mtu $MTU"`
		fi
	fi
	if [ ! -z $13 -a $13 -ne 0 ]; then
		NET=`echo -n " $NET metric $13"`
	fi
	ifconfig $NET
	if [ "$NET2" != "$1" ]; then
		ifconfig $NET2
	fi
	echo "Modifications have been made to $1:"
	ifconfig $1
fi