| #!/bin/bash |
| # |
| # Borrowing heavily from the dnsmasq initscript's version of support for |
| # resolvconf, intended for use in systemd-only configurations. |
| # |
| PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin |
| DAEMON=/usr/sbin/dnsmasq |
| NAME=dnsmasq |
| |
| # Most configuration options in /etc/default/dnsmasq are deprecated |
| # but still honoured. |
| if [ -r /etc/default/$NAME ]; then |
| . /etc/default/$NAME |
| fi |
| |
| start_resolvconf() |
| { |
| # If interface "lo" is explicitly disabled in /etc/default/dnsmasq |
| # Then dnsmasq won't be providing local DNS, so don't add it to |
| # the resolvconf server set. |
| for interface in $DNSMASQ_EXCEPT |
| do |
| [ $interface = lo ] && return |
| done |
| |
| if [ -x /sbin/resolvconf ] ; then |
| echo "nameserver 127.0.0.1" | |
| /sbin/resolvconf -a lo.$NAME |
| fi |
| return 0 |
| } |
| |
| stop_resolvconf() |
| { |
| if [ -x /sbin/resolvconf ] ; then |
| /sbin/resolvconf -d lo.$NAME |
| fi |
| return 0 |
| } |
| |
| case "$1" in |
| start) |
| start_resolvconf |
| exit 0 |
| ;; |
| stop) |
| stop_resolvconf |
| exit 0 |
| ;; |
| restart) |
| stop_resolvconf |
| start_resolvconf |
| exit 0 |
| ;; |
| *) |
| echo "Usage: /etc/init.d/$NAME {start|stop|restart}" >&2 |
| exit 3 |
| ;; |
| esac |
| |
| exit 0 |
| |