diff options
Diffstat (limited to 'net/system.sh')
-rw-r--r-- | net/system.sh | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/net/system.sh b/net/system.sh new file mode 100644 index 00000000..68abc7fe --- /dev/null +++ b/net/system.sh @@ -0,0 +1,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 : |