Allow the disabling of resolvconf or optionally an individual subscriber.
authorRoy Marples <roy@marples.name>
Sun, 19 Oct 2014 21:34:32 +0000 (21:34 +0000)
committerRoy Marples <roy@marples.name>
Sun, 19 Oct 2014 21:34:32 +0000 (21:34 +0000)
resolvconf.8.in
resolvconf.conf.5.in
resolvconf.in

index 1772223bd266780f9284fa76cbad407387c93fbd..593306201de97b90d566ae85d552ec94f3bd4156 100644 (file)
@@ -22,7 +22,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd April 17, 2014
+.Dd October 19, 2014
 .Dt RESOLVCONF 8 SMM
 .Os
 .Sh NAME
@@ -78,6 +78,20 @@ then
 will supply files that the resolver should be configured to include.
 .Pp
 .Nm
+assumes it has a job to do.
+In some situations
+.Nm
+needs to act as a deterent to writing to
+.Pa /etc/resolv.conf .
+Where this file cannot be made immutable or you just need to toggle this
+behaviour,
+.Nm
+can be disabled by adding
+.Sy resolvconf Ns = Ns NO
+to
+.Xr resolvconf.conf 5 .
+.Pp
+.Nm
 can mark an interfaces
 .Pa resolv.conf
 as private.
index d0e37145753f2b05a8b58ed92717aa8dc109864b..78a987d57f56510d5b52ebbcb6c83e61b8bc2b9a 100644 (file)
@@ -50,6 +50,11 @@ After updating this file, you may wish to run
 to apply the new configuration.
 .Sh RESOLVCONF OPTIONS
 .Bl -tag -width indent
+.It Sy resolvconf
+Set to NO to disable
+.Nm resolvconf
+from running any subscribers.
+Defaults to YES.
 .It Sy interface_order
 These interfaces will always be processed first.
 If unset, defaults to the following:-
@@ -129,6 +134,10 @@ and
 .Xr unbound 8 .
 Each subscriber can create configuration files which should be included in
 in the subscribers main configuration file.
+.Pp
+To disable a subscriber, simply set it's name to NO.
+For example, to disable the libc subscriber you would set:
+.D1 libc=NO
 .Bl -tag -width indent
 .It Sy dnsmasq_conf
 This file tells dnsmasq which name servers to use for specific domains.
index 24895ade31e1d16f81f268aa4315b9f8a28a250e..0ca86d31d61867d462566be5bd224689c8ef0d3c 100644 (file)
@@ -587,6 +587,11 @@ if [ "$cmd" = a ]; then
        unset changed oldmetric newmetric
 fi
 
+case "${resolvconf:-YES}" in
+[Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) ;;
+*) exit 0;;
+esac
+
 # An interface was added, deleted or changed.
 # These above actions are atomic, however calling our subcribers is not.
 # Even if we do our very best, the action of restarting the subscriber daemon
@@ -616,6 +621,11 @@ export RESOLVCONF DOMAINS SEARCH NAMESERVERS LOCALNAMESERVERS
 retval=0
 for script in "$LIBEXECDIR"/*; do
        if [ -f "$script" ]; then
+               eval script_enabled="\$${script##*/}"
+               case "${script_enabled:-YES}" in
+               [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) ;;
+               *) continue;;
+               esac
                if [ -x "$script" ]; then
                        "$script" "$cmd" "$iface"
                else