Subject: bug#40343: 28.0.50; dns-set-servers fails on IPv6 available Windows

From: Robert Pluim <[email-masked]>
Date: Wed, 01 Apr 2020 15:57:50 +0200

>>>>> On Wed, 01 Apr 2020 22:43:20 +0900, Kazuhiro Ito <[email-masked]> said:

    Kazuhiro> Additionally, I have
    Kazuhiro> question that whether we should consider the case nslookup doesn't
    Kazuhiro> return DNS server address, i.e. the case that re-search-forward didn't
    Kazuhiro> match anything.  In that case, (match-string 1) at next line returns
    Kazuhiro> inconstant value.  But according to docstring of dns-set-servers,
    Kazuhiro> dns-servers should be set to nil.
    >> 
    >> The dns lookup will fail in either case, no? So Iʼm not sure it really
    >> matters.

    Kazuhiro> For example, when I tested on my standalone Debian (sid) box,
    Kazuhiro> evaluating the below code just after starting Emacs returns annoying
    Kazuhiro> result.

    Kazuhiro> (progn
    Kazuhiro>   (require 'dns)
    Kazuhiro>   (dns-set-servers)
    Kazuhiro>   dns-servers)

    -> ("c")

Yes, but the API exposed by dns.el is 'dns-query' (and maybe
'dns-query-cached'). 'dns-set-servers' should probably be called
'dns--set-servers' to indicate that itʼs an internal function.

    Kazuhiro> We need to validate dns-servers's value to judge whether
    Kazuhiro> dns-set-servers succeeded contorary docstring of dns-set-servers,
    Kazuhiro> which says dns-servers is non-nil when dns-set-servers succeeded.  I
    Kazuhiro> think docstring or actual behavior of dns-set-servers should be fixed.

See previous paragraph: itʼs an internal function.

    Kazuhiro> I noticed another problem in dns.el.  dns-query function returns
    Kazuhiro> message's string ("No DNS server configuration found") when
    Kazuhiro> dns-servers is nil.

Yes, it should probably return nil, and this is actually a valid
reason for why 'dns-set-servers' should set dns-servers to nil on
failure. Can you determine why itʼs failing on your Debian box?

Robert