blob: c32bb7465254c7dd118ee950db8cbf42c68f40b8 (
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
|
# Copyright (c) 2005-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# Contributed by Roy Marples (uberlord@gentoo.org)
# void system_depend(void)
#
# Sets up the dependancies for the module
system_depend() {
after interface
before dhcp
}
# void system_expose(void)
#
# Expose variables that can be configured
system_expose() {
variables dns_servers dns_domain dns_options dns_search dns_sortlist \
ntp_servers nis_domain nis_servers
}
system_dns() {
local iface="$1" ifvar="$(bash_variable "$1")" x= domain= search=
local buffer=
local -a servers=()
servers="dns_servers_${ifvar}[@]"
[[ -z ${!servers} ]] && servers="dns_servers[@]"
domain="dns_domain_${ifvar}"
[[ -z ${!domain} ]] && domain="dns_domain"
search="dns_search_${ifvar}"
[[ -z ${!search} ]] && search="dns_search"
[[ -z ${!servers} && -z ${!domain} && -z ${!search} ]] && return 0
buffer="# Generated by net-scripts 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
# Support resolvconf if we have it.
if [[ -x /sbin/resolvconf ]] ; then
echo -e "${buffer}" | resolvconf -a "${iface}"
else
echo -e "${buffer}" > /etc/resolv.conf
chmod 644 /etc/resolv.conf
fi
}
system_ntp() {
local iface="$1" ifvar="$(bash_variable "$1")" x= buffer=
local -a servers=()
servers="ntp_servers_${ifvar}[@]"
[[ -z ${!servers} ]] && servers="ntp_servers[@]"
[[ -z ${!servers} ]] && return 0
buffer="# Generated by net-scripts 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
buffer="${buffer}driftfile /var/lib/ntp/ntp.drift\n"
buffer="${buffer}logfile /var/log/ntp.log\n"
echo -e "${buffer}" > /etc/ntp.conf
chmod 644 /etc/ntp.conf
}
system_nis() {
local iface="$1" ifvar="$(bash_variable "$1")" domain= x= buffer=
local -a servers=()
servers="nis_servers_${ifvar}[@]"
[[ -z ${!servers} ]] && servers="nis_servers[@]"
domain="nis_domain_${ifvar}"
[[ -z ${!domain} ]] && domain="nis_domain"
[[ -z ${!servers} && -z ${!domain} ]] && return 0
buffer="# Generated by net-scripts 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
echo -e "${buffer}" > /etc/yp.conf
chmod 644 /etc/yp.conf
}
# bool system_post_start(char *iface)
#
# Configures the host system for dns, ntp and nis information
# Always returns 0
system_pre_start() {
local iface="$1"
system_dns "${iface}"
system_ntp "${iface}"
system_nis "${iface}"
return 0
}
# vim: set ts=4 :
|