diff options
Diffstat (limited to 'net-dns/dnsmasq/files/resolvconf.dnsmasq')
-rw-r--r-- | net-dns/dnsmasq/files/resolvconf.dnsmasq | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/net-dns/dnsmasq/files/resolvconf.dnsmasq b/net-dns/dnsmasq/files/resolvconf.dnsmasq deleted file mode 100644 index 6895403fc288..000000000000 --- a/net-dns/dnsmasq/files/resolvconf.dnsmasq +++ /dev/null @@ -1,142 +0,0 @@ -#!/bin/sh -# Copyright 2006 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# dnsmasq-resolv.conf updater -# Written by Roy Marples (uberlord@gentoo.org) - -# This is very important! -# We assume that we are a local dns cache - after all, why would a server -# use resolvconf? -# Now that we have assumed this, we also assume that generic DHCP clients -# will enter their domains and search domains ONLY in the "search" field -# in their resolv.confs and VPN clients will put the domain they are for -# into the domain field only. -# This allows dnsmasq to forward domains for a specific VPN domain to the -# VPN nameserver and everything else to the standard name servers. - -# A sample dnsmasq config that works as above is like so -#domain-needed -#interface=lo -#resolv-file=/etc/dnsmasq-resolv.conf -#conf-file=/etc/dnsmasq-resolvconf.conf - -# The last step is to configure dns configuration for /etc/resolv.conf -# for the lo interface. In Gentoo we set it up like so in /etc/conf.d/net -#dns_servers_lo="127.0.0.1" - -# Load our variables from resolvconf -VARS="$(resolvconf -v)" -eval "${VARS}" - -DNSMASQRESOLV="/etc/dnsmasq-resolv.conf" -DNSMASQCONF="/etc/dnsmasq-resolvconf.conf" - -NEWCONF="# Generated by resolvconf\n" -NEWRESOLV="${NEWCONF}" - -# Using DBUS means that we never have to restart the daemon -# This is important as it means we should not drop DNS queries -# whilst changing DNS options around. However, DBUS support is optional -# so we need to validate a few things first. -# Check for DBus support in the binary -DBUS=no -if dnsmasq --version 2>/dev/null | \ -grep -q "^Compile time options.*[[:space:]]DBus[[:space:]]" \ -; then - # Sanity - check that dnsmasq and dbus are running - if [ -x /etc/init.d/dbus -a -x /etc/init.d/dnsmasq ] ; then - if /etc/init.d/dbus --quiet status && /etc/init.d/dnsmasq --quiet status ; then - DBUS=yes - NEWCONF="${NEWCONF}\n# Domain specific servers will be sent over dbus\n\nenable-dbus\n" - fi - fi -fi - -uniqify() { - local result= - while [ -n "$1" ] ; do - case " ${result} " in - *" $1 "*) ;; - *) result="${result} $1" ;; - esac - shift - done - echo "${result# *}" -} - -# If we only have domain information then put it in search too -[ -z "${NEWSEARCH}" -a -z "${NEWNS}" ] && NEWSEARCH="${NEWDOMAIN}" - -for N in ${NEWSEARCH} ; do - case " ${NEWSL} " in - *" ${N%,*} "*) ;; - *) NEWSL="${NEWSL} ${N%,*}" ;; - esac - case "\n${NEWRESOLV}\n" in - *"\nnameserver ${N#*,}\n"*) ;; - *) NEWRESOLV="${NEWRESOLV}nameserver ${N#*,}\n" ;; - esac -done -for N in ${NEWNS} ; do - case "\n${NEWRESOLV}\n" in - *"\nnameserver ${N}\n") ;; - *) NEWRESOLV="${NEWRESOLV}nameserver ${N}\n" ;; - esac -done -[ -n "${NEWSL}" ] && NEWRESOLV="${NEWRESOLV}search${NEWSL}\n" - -DBUSDEST= -for DN in $(uniqify ${NEWDOMAIN}) ; do - if [ "${DBUS}" = "yes" ] ; then - IP=${DN#*,} - SIFS=${IFS-y} OIFS=$IFS - IFS=. - set -- ${IP} - NUM="0x$(printf "%02x" $1 $2 $3 $4)" - if [ "${SIFS}" = "y" ] ; then - IFS=$OIFS - else - unset IFS - fi - DBUSDEST="${DBUSDEST} uint32:$(printf "%d" ${NUM}) string:${DN%,*}" - else - NEWCONF="${NEWCONF}server=/${DN%,*}/${DN#*,}\n" - fi -done - -RELOAD="no" -if [ -e "${DNSMASQCONF}" ] ; then - if [ "$(cat "${DNSMASQCONF}")" != "$(printf "${NEWCONF}")" ] ; then - RELOAD="yes" - printf "${NEWCONF}" > "${DNSMASQCONF}" - fi -else - RELOAD="yes" - printf "${NEWCONF}" > "${DNSMASQCONF}" -fi -if [ -e "${DNSMASQRESOLV}" ] ; then - if [ "$(cat "${DNSMASQRESOLV}")" != "$(printf "${NEWRESOLV}")" ] ; then - RELOAD="yes" - printf "${NEWRESOLV}" > "${DNSMASQRESOLV}" - fi -else - # dnsmasq polls this file so no need to set RELOAD="yes" - printf "${NEWRESOLV}" > "${DNSMASQRESOLV}" -fi - -if [ "${RELOAD}" = "yes" -a -x /etc/init.d/dnsmasq ] ; then - /etc/init.d/dnsmasq --quiet --nodeps conditionalrestart -fi - -if [ "${DBUS}" = "yes" ] ; then - if [ "${RELOAD}" != "yes" -a -x /etc/init.d/dnsmasq ] ; then - /etc/init.d/dnsmasq --quiet reload - fi - # Send even if emtpy so old servers are cleared - dbus-send --system --dest=uk.org.thekelleys.dnsmasq \ - /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetServers \ - ${DBUSDEST} -fi - -# vim: ts=4 : |