aboutsummaryrefslogtreecommitdiff
path: root/net/system.sh
blob: 68abc7fe18d19fd6ae4fa1354c6bfbc66a13c6d2 (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
# Copyright 2005-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

_config_vars="$_config_vars dns_servers dns_domain dns_search"
_config_vars="$_config_vars ntp_servers nis_servers nis_domain"

system_depend() {
	after interface
	before dhcp
}

_system_dns() {
	local servers= domain= search= x=

	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}
	
	[ -z "${servers}" -a -z "${domain}" -a -z "${search}" ] && return 0

	local 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
		printf "${buffer}" | resolvconf -a "${IFACE}"
	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 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"

	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 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

	printf "${buffer}" > /etc/yp.conf
	chmod 644 /etc/yp.conf
}

system_pre_start() {
	_system_dns
	_system_ntp 
	_system_nis 

	return 0
}

# vim: set ts=4 :