blob: 41e0c90ff831fce27f380175f3f8a65730b76bb3 (
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
|
#!/stand/sh
#
# netinst.sh - configure the user's network.
#
# Written: November 11th, 1994
# Copyright (C) 1994 by Jordan K. Hubbard
#
# Permission to copy or use this software for any purpose is granted
# provided that this message stay intact, and at this location (e.g. no
# putting your name on top after doing something trivial like reindenting
# it, just to make it look like you wrote it!).
#
# $Id: netinst.sh,v 1.16 1994/12/05 00:13:11 ache Exp $
if [ "${_NETINST_SH_LOADED_}" = "yes" ]; then
return 0
else
_NETINST_SH_LOADED_=yes
fi
# Grab the miscellaneous functions.
. /stand/miscfuncs.sh
network_set_defaults()
{
HOSTNAME=""
DOMAIN=""
NETMASK="0xffffff00"
IPADDR="127.0.0.1"
IFCONFIG_FLAGS=""
REMOTE_HOSTIP=""
REMOTE_IPADDR=""
INTERFACE=""
SERIAL_INTERFACE="/dev/cuaa0"
SERIAL_SPEED="38400"
}
network_basic_setup()
{
HOSTNAME=""
while [ "${HOSTNAME}" = "" ]; do
DEFAULT_VALUE=""
if ! network_dialog "What is the fully qualified name of this host?"; then return 1; fi
if [ "${ANSWER}" = "" ]; then
error "You must select a host name!"
continue
else
HOSTNAME=${ANSWER}
fi
done
echo ${HOSTNAME} > ${ETC}/myname
${HOSTNAME_CMD} ${HOSTNAME}
DEFAULT_VALUE=`echo ${HOSTNAME} | sed -e 's/[^.]*\.//' | grep \.`
if network_dialog "What is the domain name of this host (Internet, not YP/NIS)?"; then
DOMAIN=${ANSWER}
fi
DEFAULT_VALUE=${IPADDR}
if ! network_dialog "What is the IP address of this host?"; then return 1; fi
IPADDR=${ANSWER}
echo "${IPADDR} ${HOSTNAME} `echo ${HOSTNAME} | sed -e 's/\.${DOMAIN}//'`" >> ${ETC}/hosts
}
network_setup_ether()
{
dialog --title "Ethernet Interface Name" --menu \
"Please select the type of ethernet interface you have:\n" -1 -1 8 \
"ed0" "WD80x3, SMC, Novell NE[21]000 or 3C503 generic NIC at 0x280" \
"ed1" "Same as above, but at address 0x300 and IRQ 5" \
"ep0" "3COM 3C509 at address 0x300 and IRQ 10" \
"de0" "DEC PCI ethernet adapter (or compatible)" \
"ie0" "AT&T StarLan and EN100 family at 0x360 and IRQ 7" \
"is0" "Isolan 4141-0 or Isolink 4110 at 0x280 and IRQ 7" \
"le0" "DEC Etherworks ethernet adapter" \
"ze0" "PCMCIA IBM or National card at 0x300 and IRQ 5" \
2> ${TMP}/menu.tmp.$$
RETVAL=$?
INTERFACE=`cat ${TMP}/menu.tmp.$$`
rm -f ${TMP}/menu.tmp.$$
if ! handle_rval ${RETVAL}; then return 1; fi
}
network_setup_remote()
{
DEFAULT_VALUE="${REMOTE_IPADDR}"
if ! network_dialog "What is the IP number for the remote host?"; then
return 1
fi
REMOTE_IPADDR=${ANSWER}
}
network_setup_serial()
{
network_setup_remote
INTERFACE=$1
DEFAULT_VALUE=${SERIAL_INTERFACE}
if ! network_dialog "What serial port do you wish to use?"; then
return 1
fi
SERIAL_INTERFACE=${ANSWER}
DEFAULT_VALUE=${SERIAL_SPEED}
if ! network_dialog "What speed is the serial connection?"; then
return 1
fi
SERIAL_SPEED=${ANSWER}
if dialog --title "Dial" --yesno \
"Do you need to dial the phone or otherwise talk to the modem?" \
-1 -1; then
mkdir -p /var/log
touch -f /var/log/aculog > /dev/null 2>&1
chmod 666 /var/log/aculog > /dev/null 2>&1
confirm \
"You may now dialog with your modem and set up the connection.
Be sure to disable DTR sensitivity (usually with AT&D0) or the
modem may hang up when you exit 'cu'. Use ~. to exit cu and
continue."
dialog --clear
# Grottyness to deal with a weird crunch bug.
if [ ! -f /stand/cu ]; then ln /stand/tip /stand/cu; fi
/stand/cu -l ${SERIAL_INTERFACE} -s ${SERIAL_SPEED}
dialog --clear
fi
}
network_setup_plip()
{
network_setup_remote
INTERFACE=lp0
}
network_setup()
{
DONE=0
while [ "${INTERFACE}" = "" ]; do
dialog --title "Set up network interface" --menu \
"Please select the type of network connection you have:\n" \
-1 -1 3 \
"Ether" "A supported ethernet card" \
"SLIP" "A point-to-point SLIP (Serial Line IP) connection" \
"PLIP" "A Parallel-Line IP setup (with standard laplink cable)" \
2> ${TMP}/menu.tmp.$$
RETVAL=$?
CHOICE=`cat ${TMP}/menu.tmp.$$`
rm -f ${TMP}/menu.tmp.$$
if ! handle_rval ${RETVAL}; then return 1; fi
case ${CHOICE} in
Ether) if ! network_setup_ether; then continue; fi ;;
SLIP) if ! network_setup_serial sl0; then continue; fi ;;
PLIP) if ! network_setup_plip; then continue; fi ;;
esac
if [ "${INTERFACE}" = "" ]; then continue; fi
network_basic_setup
DEFAULT_VALUE="${NETMASK}"
if network_dialog "Please specify the netmask"; then
if [ "${ANSWER}" != "" ]; then
NETMASK=${ANSWER}
fi
fi
DEFAULT_VALUE=""
if network_dialog "Set extra flags to ${IFCONFIG_CMD}?"; then
IFCONFIG_FLAGS=${ANSWER}
fi
echo "Progress <${IFCONFIG_CMD} ${INTERFACE} ${IPADDR} ${REMOTE_IPADDR} netmask ${NETMASK} ${IFCONFIG_FLAGS}>" >/dev/ttyv1
if ! ${IFCONFIG_CMD} ${INTERFACE} ${IPADDR} ${REMOTE_IPADDR} netmask ${NETMASK} ${IFCONFIG_FLAGS} > /dev/ttyv1 2>&1 ; then
error "Unable to configure interface ${INTERFACE}"
IPADDR=""
INTERFACE=""
continue
fi
if [ "${INTERFACE}" = "sl0" ]; then
DEFAULT_VALUE=${SLATTACH_FLAGS}
if network_dialog "Set extra flags to ${SLATTACH_CMD}?"; then
SLATTACH_FLAGS=${ANSWER}
fi
${SLATTACH_CMD} ${SLATTACH_FLAGS} ${SERIAL_SPEED} ${SERIAL_INTERFACE}
progress ${SLATTACH_CMD} ${SLATTACH_FLAGS} ${SERIAL_SPEED} ${SERIAL_INTERFACE}
fi
echo "${IPADDR} ${REMOTE_IPADDR} netmask ${NETMASK} ${IFCONFIG_FLAGS}" > ${ETC}/hostname.${INTERFACE}
DEFAULT_VALUE=""
if network_dialog "If you have a default gateway, enter its IP address"; then
if [ "${ANSWER}" != "" ]; then
GATEWAY=${ANSWER}
${ROUTE_CMD} ${ROUTE_FLAGS} ${GATEWAY} > /dev/ttyv1 2>&1
progress ${ROUTE_CMD} ${ROUTE_FLAGS} ${GATEWAY}
echo ${GATEWAY} > ${ETC}/defaultrouter
fi
fi
DEFAULT_VALUE=""
if network_dialog "If you have a name server, enter its IP address"; then
if [ "${ANSWER}" != "" ]; then
NAMESERVER=${ANSWER}
echo "domain ${DOMAIN}" > ${ETC}/resolv.conf
echo "nameserver ${NAMESERVER}" >> ${ETC}/resolv.conf
fi
fi
done
return 0
}
|