[LEDE-DEV] [PATCH] dnsmasq: write resolv.conf also when noresolv = 1

Hans Dedecker dedeckeh at gmail.com
Sat May 20 11:58:31 PDT 2017


On Sat, May 20, 2017 at 12:41 AM, Paul Oranje <por at xs4all.nl> wrote:
> When UCI dhcp.dnsmasq.noresolv is true, dnsmasq ignores the (wan) resolv.conf
> for upstream name resolution and the dnsmasq init script ialso skips writing
> /tmp/resolv.conf (/etc/resolv.conf soft links that file).
>
> Not using the local running DNS service when noresolv is true does not make
> sence; the semantics of that config value do not imply this. With this patch
> the init script also writes /tmp/resolv.conf when noresolv is true.
>
> fixes FS#785
>
> Signed-off-by: Paul Oranje <por at xs4all.nl>
> ---
> This patch replaces an earlier patch with subject
>   dnsmasq: also write /tmp/resolv.conf when UCI dhcp.dnsmasq.noresolv is '1'
> which is obsoleted because that subject was required to be shorter.
> ---
>  package/network/services/dnsmasq/files/dnsmasq.init | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/package/network/services/dnsmasq/files/dnsmasq.init b/package/network/services/dnsmasq/files/dnsmasq.init
> index 30fec7a4ee..197aae9de1 100644
> --- a/package/network/services/dnsmasq/files/dnsmasq.init
> +++ b/package/network/services/dnsmasq/files/dnsmasq.init
> @@ -947,7 +947,7 @@ dnsmasq_start()
>         echo >> $CONFIGFILE_TMP
>         mv -f $CONFIGFILE_TMP $CONFIGFILE
>
> -       [ "$resolvfile" = "/tmp/resolv.conf.auto" ] && {
> +       [ "$noresolv" = "1" -o "$resolvfile" = "/tmp/resolv.conf.auto" ] && {
>                 rm -f /tmp/resolv.conf
>                 [ $ADD_LOCAL_DOMAIN -eq 1 ] && [ -n "$DOMAIN" ] && {
>                         echo "search $DOMAIN" >> /tmp/resolv.conf
> @@ -982,7 +982,7 @@ dnsmasq_stop()
>         config_get resolvfile "$cfg" "resolvfile"
>
>         #relink /tmp/resolve.conf only for main instance
> -       [ "$resolvfile" = "/tmp/resolv.conf.auto" ] && {
> +       [ "$noresolv" = "1" -o "$resolvfile" = "/tmp/resolv.conf.auto" ] && {
As mentioned in the previous code review noresolv value must be read
from config (similar to resolvfile) otherwise this will not work
>                 [ -f /tmp/resolv.conf ] && {
>                         rm -f /tmp/resolv.conf
>                         ln -s "$resolvfile" /tmp/resolv.conf
As mentioned in the previous code review resolvfile can now be empty
which will make ln -s produce an error

Hans
> --
>
>
> _______________________________________________
> Lede-dev mailing list
> Lede-dev at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/lede-dev



More information about the Lede-dev mailing list