blob: 518a8994b5e9fbcb0fcae68bc5c9b473a9716519 (
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
|
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
# shellcheck shell=sh disable=SC1008
_config_vars="$_config_vars dns_servers dns_domain dns_search"
_config_vars="$_config_vars dns_sortlist dns_options"
_config_vars="$_config_vars ntp_servers nis_servers nis_domain"
system_depend()
{
after interface
before dhcp
}
_system_dns()
{
local servers= domain= search= sortlist= options= x= imetric=
eval servers=\$dns_servers_${IFVAR}
[ -z "${servers}" ] && servers=${dns_servers}
eval domain=\$dns_domain_${IFVAR}
[ -z "${domain}" ] && domain=${dns_domain}
eval search=\$dns_search_${IFVAR}
[ -z "${search}" ] && search=${dns_search}
eval sortlist=\$dns_sortlist_${IFVAR}
[ -z "${sortlist}" ] && sortlist=${dns_sortlist}
eval options=\$dns_options_${IFVAR}
[ -z "${options}" ] && options=${dns_options}
[ -z "${servers}" -a -z "${domain}" -a -z "${search}" \
-a -z "${sortlist}" -a -z "${options}" ] && return 0
local buffer="# Generated by netifrc for interface ${IFACE}\n"
[ -n "${domain}" ] && buffer="${buffer}domain ${domain}\n"
[ -n "${search}" ] && buffer="${buffer}search ${search}\n"
for x in ${servers}; do
buffer="${buffer}nameserver ${x}\n"
done
[ -n "${sortlist}" ] && buffer="${buffer}sortlist ${sortlist}\n"
[ -n "${options}" ] && buffer="${buffer}options ${options}\n"
# Support resolvconf if we have it.
if command -v resolvconf >/dev/null; then
x="-a ${IFACE}"
eval imetric=\${metric_${IFVAR}}
if [ -n "${imetric}" ]; then
x="${x} -m ${imetric}"
fi
printf "${buffer}" | resolvconf ${x}
else
printf "${buffer}" > /etc/resolv.conf
chmod 644 /etc/resolv.conf
fi
}
_system_ntp()
{
local servers= buffer= x=
eval servers=\$ntp_servers_${IFVAR}
[ -z "${servers}" ] && servers=${ntp_servers}
[ -z "${servers}" ] && return 0
buffer="# Generated by netifrc for interface ${IFACE}\n"
buffer="${buffer}restrict default noquery notrust nomodify\n"
buffer="${buffer}restrict 127.0.0.1\n"
for x in ${servers}; do
buffer="${buffer}restrict ${x} nomodify notrap noquery\n"
buffer="${buffer}server ${x}\n"
done
printf "${buffer}" > /etc/ntp.conf
chmod 644 /etc/ntp.conf
}
_system_nis()
{
local servers= domain= x= buffer=
eval servers=\$nis_servers_${IFVAR}
[ -z "${servers}" ] && servers=${nis_servers}
eval domain=\$nis_domain_${IFVAR}
[ -z "${domain}" ] && domain=${nis_domain}
[ -z "${servers}" -a -z "${domain}" ] && return 0
buffer="# Generated by netifrc for interface ${iface}\n"
if [ -n "${domain}" ]; then
hostname -y "${domain}"
if [ -n "${servers}" ]; then
for x in ${servers}; do
buffer="${buffer}domain ${domain} server ${x}\n"
done
else
buffer="${buffer}domain ${domain} broadcast\n"
fi
else
for x in ${servers}; do
buffer="${buffer}ypserver ${x}\n"
done
fi
printf "${buffer}" > /etc/yp.conf
chmod 644 /etc/yp.conf
}
system_pre_start()
{
_system_dns
_system_ntp
_system_nis
return 0
}
|