* bug#40343: 28.0.50; dns-set-servers fails on IPv6 available Windows @ 2020-03-31 8:46 Kazuhiro Ito 2020-03-31 9:50 ` Robert Pluim 0 siblings, 1 reply; 12+ messages in thread From: Kazuhiro Ito @ 2020-03-31 8:46 UTC (permalink / raw) To: 40343 dns-set-servers function fails to set dns-servers on Windows with IPv6 available network. (progn (require 'dns) (dns-set-servers) dns-servers) -> (nil) The reason is that Windows's nslookup program returns server's IPv6 address if availeble but dns-set-servers function assumes that server's address is always IPv4. > C:\>nslookup localhost > サーバー: server.lan > Address: xxxx:xxxx:xxxx::1 > > 名前: localhost.lan > Addresses: ::1 > 127.0.0.1 # "サーバー" and "名前" are Japanese translations for "Server" and # "Name", respectively. From dns-set-servers definition in lisp/net/dns.el > (re-search-forward > "^Address:[ \t]*\\([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\\)" nil t) -- Kazuhiro Ito ^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#40343: 28.0.50; dns-set-servers fails on IPv6 available Windows 2020-03-31 8:46 bug#40343: 28.0.50; dns-set-servers fails on IPv6 available Windows Kazuhiro Ito @ 2020-03-31 9:50 ` Robert Pluim 2020-03-31 11:06 ` Kazuhiro Ito 0 siblings, 1 reply; 12+ messages in thread From: Robert Pluim @ 2020-03-31 9:50 UTC (permalink / raw) To: Kazuhiro Ito; +Cc: 40343 >>>>> On Tue, 31 Mar 2020 17:46:47 +0900, Kazuhiro Ito <kzhr@d1.dion.ne.jp> said: Kazuhiro> dns-set-servers function fails to set dns-servers on Windows with IPv6 Kazuhiro> available network. Kazuhiro> (progn Kazuhiro> (require 'dns) Kazuhiro> (dns-set-servers) Kazuhiro> dns-servers) -> (nil) dns.el isnʼt going to work on Windows anyway, since Emacs doesnʼt support UDP network processes on Windows. You can use 'network-lookup-address-info' (builtin) or 'nslookup-host' (from net-utils.el) instead. Kazuhiro> From dns-set-servers definition in lisp/net/dns.el >> (re-search-forward >> "^Address:[ \t]*\\([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\\)" nil t) That could be fixed, I suppose. Robert ^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#40343: 28.0.50; dns-set-servers fails on IPv6 available Windows 2020-03-31 9:50 ` Robert Pluim @ 2020-03-31 11:06 ` Kazuhiro Ito 2020-03-31 13:01 ` Robert Pluim 0 siblings, 1 reply; 12+ messages in thread From: Kazuhiro Ito @ 2020-03-31 11:06 UTC (permalink / raw) To: Robert Pluim; +Cc: 40343 > Kazuhiro> dns-set-servers function fails to set dns-servers on Windows with IPv6 > Kazuhiro> available network. > > Kazuhiro> (progn > Kazuhiro> (require 'dns) > Kazuhiro> (dns-set-servers) > Kazuhiro> dns-servers) > > -> (nil) > > dns.el isnʼt going to work on Windows anyway, since Emacs doesnʼt > support UDP network processes on Windows. Cygwin's Emacs, which seems to support UDP network processes, uses Windows's nslookup.exe, so has this problem too. # Actually I don't directly use dns.el. It is gravatar.el which uses # dns.el. -- Kazuhiro Ito ^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#40343: 28.0.50; dns-set-servers fails on IPv6 available Windows 2020-03-31 11:06 ` Kazuhiro Ito @ 2020-03-31 13:01 ` Robert Pluim 2020-03-31 14:22 ` Kazuhiro Ito 0 siblings, 1 reply; 12+ messages in thread From: Robert Pluim @ 2020-03-31 13:01 UTC (permalink / raw) To: Kazuhiro Ito; +Cc: 40343 >>>>> On Tue, 31 Mar 2020 20:06:50 +0900, Kazuhiro Ito <kzhr@d1.dion.ne.jp> said: Kazuhiro> dns-set-servers function fails to set dns-servers on Windows with IPv6 Kazuhiro> available network. >> Kazuhiro> (progn Kazuhiro> (require 'dns) Kazuhiro> (dns-set-servers) Kazuhiro> dns-servers) >> -> (nil) >> >> dns.el isnʼt going to work on Windows anyway, since Emacs doesnʼt >> support UDP network processes on Windows. Kazuhiro> Cygwin's Emacs, which seems to support UDP network processes, uses Kazuhiro> Windows's nslookup.exe, so has this problem too. Thatʼs not a Windows Emacs :-) Kazuhiro> # Actually I don't directly use dns.el. It is gravatar.el which uses Kazuhiro> # dns.el. True. We should teach emacs about res_query. Does this work for you: diff --git a/lisp/net/dns.el b/lisp/net/dns.el index 78d4827162..fd2ea99ac6 100644 --- a/lisp/net/dns.el +++ b/lisp/net/dns.el @@ -328,7 +328,7 @@ dns-set-servers (call-process "nslookup" nil t nil "localhost") (goto-char (point-min)) (re-search-forward - "^Address:[ \t]*\\([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\\)" nil t) + "^Address:[ \t]*\\([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\\)\\|\\([[:xdigit:]:]*\\)" nil t) (setq dns-servers (list (match-string 1)))))) (when (fboundp 'network-interface-list) (setq dns-servers-valid-for-interfaces (network-interface-list)))) ^ permalink raw reply related [flat|nested] 12+ messages in thread
* bug#40343: 28.0.50; dns-set-servers fails on IPv6 available Windows 2020-03-31 13:01 ` Robert Pluim @ 2020-03-31 14:22 ` Kazuhiro Ito 2020-03-31 14:28 ` Robert Pluim 0 siblings, 1 reply; 12+ messages in thread From: Kazuhiro Ito @ 2020-03-31 14:22 UTC (permalink / raw) To: Robert Pluim; +Cc: 40343 > Does this work for you: > > diff --git a/lisp/net/dns.el b/lisp/net/dns.el > index 78d4827162..fd2ea99ac6 100644 > --- a/lisp/net/dns.el > +++ b/lisp/net/dns.el > @@ -328,7 +328,7 @@ dns-set-servers > (call-process "nslookup" nil t nil "localhost") > (goto-char (point-min)) > (re-search-forward > - "^Address:[ \t]*\\([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\\)" nil t) > + "^Address:[ \t]*\\([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\\)\\|\\([[:xdigit:]:]*\\)" nil t) > (setq dns-servers (list (match-string 1)))))) > (when (fboundp 'network-interface-list) > (setq dns-servers-valid-for-interfaces (network-interface-list)))) I needed to modify your regexp as below. Additionally, I have question that whether we should consider the case nslookup doesn't return DNS server address, i.e. the case that re-search-forward didn't match anything. In that case, (match-string 1) at next line returns inconstant value. But according to docstring of dns-set-servers, dns-servers should be set to nil. diff --git a/lisp/net/dns.el b/lisp/net/dns.el index 78d4827162..92db9a5bac 100644 --- a/lisp/net/dns.el +++ b/lisp/net/dns.el @@ -328,7 +328,7 @@ dns-set-servers (call-process "nslookup" nil t nil "localhost") (goto-char (point-min)) (re-search-forward - "^Address:[ \t]*\\([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\\)" nil t) + "^Address:[ \t]*\\([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\\|[[:xdigit:]:]*\\)" nil t) (setq dns-servers (list (match-string 1)))))) (when (fboundp 'network-interface-list) (setq dns-servers-valid-for-interfaces (network-interface-list)))) -- Kazuhiro Ito ^ permalink raw reply related [flat|nested] 12+ messages in thread
* bug#40343: 28.0.50; dns-set-servers fails on IPv6 available Windows 2020-03-31 14:22 ` Kazuhiro Ito @ 2020-03-31 14:28 ` Robert Pluim 2020-04-01 13:43 ` Kazuhiro Ito 0 siblings, 1 reply; 12+ messages in thread From: Robert Pluim @ 2020-03-31 14:28 UTC (permalink / raw) To: Kazuhiro Ito; +Cc: 40343 >>>>> On Tue, 31 Mar 2020 23:22:33 +0900, Kazuhiro Ito <kzhr@d1.dion.ne.jp> said: >> Does this work for you: >> >> diff --git a/lisp/net/dns.el b/lisp/net/dns.el >> index 78d4827162..fd2ea99ac6 100644 >> --- a/lisp/net/dns.el >> +++ b/lisp/net/dns.el >> @@ -328,7 +328,7 @@ dns-set-servers >> (call-process "nslookup" nil t nil "localhost") >> (goto-char (point-min)) >> (re-search-forward >> - "^Address:[ \t]*\\([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\\)" nil t) >> + "^Address:[ \t]*\\([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\\)\\|\\([[:xdigit:]:]*\\)" nil t) >> (setq dns-servers (list (match-string 1)))))) >> (when (fboundp 'network-interface-list) >> (setq dns-servers-valid-for-interfaces (network-interface-list)))) Kazuhiro> I needed to modify your regexp as below. Ah yes, I got the grouping wrong. 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. Robert ^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#40343: 28.0.50; dns-set-servers fails on IPv6 available Windows 2020-03-31 14:28 ` Robert Pluim @ 2020-04-01 13:43 ` Kazuhiro Ito 2020-04-01 13:57 ` Robert Pluim 0 siblings, 1 reply; 12+ messages in thread From: Kazuhiro Ito @ 2020-04-01 13:43 UTC (permalink / raw) To: Robert Pluim; +Cc: 40343 > 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. For example, when I tested on my standalone Debian (sid) box, evaluating the below code just after starting Emacs returns annoying result. (progn (require 'dns) (dns-set-servers) dns-servers) -> ("c") We need to validate dns-servers's value to judge whether dns-set-servers succeeded contorary docstring of dns-set-servers, which says dns-servers is non-nil when dns-set-servers succeeded. I think docstring or actual behavior of dns-set-servers should be fixed. I noticed another problem in dns.el. dns-query function returns message's string ("No DNS server configuration found") when dns-servers is nil. -- Kazuhiro Ito ^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#40343: 28.0.50; dns-set-servers fails on IPv6 available Windows 2020-04-01 13:43 ` Kazuhiro Ito @ 2020-04-01 13:57 ` Robert Pluim 2020-04-01 14:55 ` Kazuhiro Ito 0 siblings, 1 reply; 12+ messages in thread From: Robert Pluim @ 2020-04-01 13:57 UTC (permalink / raw) To: Kazuhiro Ito; +Cc: 40343 >>>>> On Wed, 01 Apr 2020 22:43:20 +0900, Kazuhiro Ito <kzhr@d1.dion.ne.jp> 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 ^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#40343: 28.0.50; dns-set-servers fails on IPv6 available Windows 2020-04-01 13:57 ` Robert Pluim @ 2020-04-01 14:55 ` Kazuhiro Ito 2020-04-03 8:42 ` Robert Pluim 0 siblings, 1 reply; 12+ messages in thread From: Kazuhiro Ito @ 2020-04-01 14:55 UTC (permalink / raw) To: Robert Pluim; +Cc: 40343 > 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. I don't understand what you mean by "itʼs an internal function". I don't think it is okay that internal functions don't behave as described in docstring. > 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? I tested on Debian box as below. 1. /etc/init.d/networking stop 2. remove nameserver entry from /etc/resolv.conf On such condition, nslookup program outputs as below > ;; connection timed out; no servers could be reached Here is code snippet communicating with nslookup in dns-set-servers. > (with-temp-buffer > (call-process "nslookup" nil t nil "localhost") > (goto-char (point-min)) > (re-search-forward > "^Address:[ \t]*\\([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\\)" nil t) > (setq dns-servers (list (match-string 1)))) On the above condition, re-search-forward doesn't match anything. But next match-string is called unconditionally. As far as I tested, match-string's result when last search didn't match is undefined. it may return nil, string or raise an error. Additionally, even if match-string returns nil, dns-servers is never set to nil. It is set to (nil). -- Kazuhiro Ito ^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#40343: 28.0.50; dns-set-servers fails on IPv6 available Windows 2020-04-01 14:55 ` Kazuhiro Ito @ 2020-04-03 8:42 ` Robert Pluim 2020-04-03 14:08 ` Kazuhiro Ito 0 siblings, 1 reply; 12+ messages in thread From: Robert Pluim @ 2020-04-03 8:42 UTC (permalink / raw) To: Kazuhiro Ito; +Cc: 40343 >>>>> On Wed, 01 Apr 2020 23:55:12 +0900, Kazuhiro Ito <kzhr@d1.dion.ne.jp> said: Kazuhiro> I tested on Debian box as below. Kazuhiro> 1. /etc/init.d/networking stop Kazuhiro> 2. remove nameserver entry from /etc/resolv.conf Kazuhiro> On such condition, nslookup program outputs as below >> ;; connection timed out; no servers could be reached Kazuhiro> Here is code snippet communicating with nslookup in dns-set-servers. >> (with-temp-buffer >> (call-process "nslookup" nil t nil "localhost") >> (goto-char (point-min)) >> (re-search-forward >> "^Address:[ \t]*\\([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\\)" nil t) >> (setq dns-servers (list (match-string 1)))) Kazuhiro> On the above condition, re-search-forward doesn't match anything. But Kazuhiro> next match-string is called unconditionally. As far as I tested, Kazuhiro> match-string's result when last search didn't match is undefined. it Kazuhiro> may return nil, string or raise an error. Additionally, even if Kazuhiro> match-string returns nil, dns-servers is never set to nil. It is set Kazuhiro> to (nil). Thanks for that. This should fix all those cases: diff --git a/lisp/net/dns.el b/lisp/net/dns.el index 78d4827162..177df4e332 100644 --- a/lisp/net/dns.el +++ b/lisp/net/dns.el @@ -315,8 +315,8 @@ dns-servers-up-to-date-p (defun dns-set-servers () "Set `dns-servers' to a list of DNS servers or nil if none are found. Parses \"/etc/resolv.conf\" or calls \"nslookup\"." + (setq dns-servers nil) (or (when (file-exists-p "/etc/resolv.conf") - (setq dns-servers nil) (with-temp-buffer (insert-file-contents "/etc/resolv.conf") (goto-char (point-min)) @@ -327,9 +327,9 @@ dns-set-servers (with-temp-buffer (call-process "nslookup" nil t nil "localhost") (goto-char (point-min)) - (re-search-forward - "^Address:[ \t]*\\([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\\)" nil t) - (setq dns-servers (list (match-string 1)))))) + (when (re-search-forward + "^Address:[ \t]*\\([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\\|[[:xdigit:]:]*\\)" nil t) + (setq dns-servers (list (match-string 1))))))) (when (fboundp 'network-interface-list) (setq dns-servers-valid-for-interfaces (network-interface-list)))) @@ -357,7 +357,9 @@ dns-make-network-process `(let ((server ,server) (coding-system-for-read 'binary) (coding-system-for-write 'binary)) - (if (fboundp 'make-network-process) + (if (and + (fboundp 'make-network-process) + (featurep 'make-network-process '(:type datagram))) (make-network-process :name "dns" :coding 'binary @@ -365,9 +367,9 @@ dns-make-network-process :host server :service "domain" :type 'datagram) - ;; Older versions of Emacs doesn't have - ;; `make-network-process', so we fall back on opening a TCP - ;; connection to the DNS server. + ;; Older versions of Emacs do not have `make-network-process', + ;; and on MS-Windows datagram sockets are not supported, so we + ;; fall back on opening a TCP connection to the DNS server. (open-network-stream "dns" (current-buffer) server "domain")))) (defvar dns-cache (make-vector 4096 0)) @@ -400,7 +402,9 @@ dns-query type 'PTR)) (if (not dns-servers) - (message "No DNS server configuration found") + (progn + (message "No DNS server configuration found") + nil) (with-temp-buffer (set-buffer-multibyte nil) (let ((process (condition-case () ^ permalink raw reply related [flat|nested] 12+ messages in thread
* bug#40343: 28.0.50; dns-set-servers fails on IPv6 available Windows 2020-04-03 8:42 ` Robert Pluim @ 2020-04-03 14:08 ` Kazuhiro Ito 2020-04-03 15:19 ` Robert Pluim 0 siblings, 1 reply; 12+ messages in thread From: Kazuhiro Ito @ 2020-04-03 14:08 UTC (permalink / raw) To: Robert Pluim; +Cc: 40343 > Thanks for that. This should fix all those cases: Thank you for the patch. It works well on Cygwin environment. But I noticed different problems in dns-query when TCP is used. 1. dns-write function needs to be called with TCP-P option. 2. First 2 bytes of received data (length field) should be truncated for dns-read function. Or dns-read function should accept TCP-P option like dns-wrote function. > diff --git a/lisp/net/dns.el b/lisp/net/dns.el > index 78d4827162..177df4e332 100644 > --- a/lisp/net/dns.el > +++ b/lisp/net/dns.el > @@ -315,8 +315,8 @@ dns-servers-up-to-date-p > (defun dns-set-servers () > "Set `dns-servers' to a list of DNS servers or nil if none are found. > Parses \"/etc/resolv.conf\" or calls \"nslookup\"." > + (setq dns-servers nil) > (or (when (file-exists-p "/etc/resolv.conf") > - (setq dns-servers nil) > (with-temp-buffer > (insert-file-contents "/etc/resolv.conf") > (goto-char (point-min)) > @@ -327,9 +327,9 @@ dns-set-servers > (with-temp-buffer > (call-process "nslookup" nil t nil "localhost") > (goto-char (point-min)) > - (re-search-forward > - "^Address:[ \t]*\\([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\\)" nil t) > - (setq dns-servers (list (match-string 1)))))) > + (when (re-search-forward > + "^Address:[ \t]*\\([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\\|[[:xdigit:]:]*\\)" nil t) > + (setq dns-servers (list (match-string 1))))))) > (when (fboundp 'network-interface-list) > (setq dns-servers-valid-for-interfaces (network-interface-list)))) > > @@ -357,7 +357,9 @@ dns-make-network-process > `(let ((server ,server) > (coding-system-for-read 'binary) > (coding-system-for-write 'binary)) > - (if (fboundp 'make-network-process) > + (if (and > + (fboundp 'make-network-process) > + (featurep 'make-network-process '(:type datagram))) > (make-network-process > :name "dns" > :coding 'binary > @@ -365,9 +367,9 @@ dns-make-network-process > :host server > :service "domain" > :type 'datagram) > - ;; Older versions of Emacs doesn't have > - ;; `make-network-process', so we fall back on opening a TCP > - ;; connection to the DNS server. > + ;; Older versions of Emacs do not have `make-network-process', > + ;; and on MS-Windows datagram sockets are not supported, so we > + ;; fall back on opening a TCP connection to the DNS server. > (open-network-stream "dns" (current-buffer) server "domain")))) > > (defvar dns-cache (make-vector 4096 0)) > @@ -400,7 +402,9 @@ dns-query > type 'PTR)) > > (if (not dns-servers) > - (message "No DNS server configuration found") > + (progn > + (message "No DNS server configuration found") > + nil) > (with-temp-buffer > (set-buffer-multibyte nil) > (let ((process (condition-case () -- Kazuhiro Ito ^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#40343: 28.0.50; dns-set-servers fails on IPv6 available Windows 2020-04-03 14:08 ` Kazuhiro Ito @ 2020-04-03 15:19 ` Robert Pluim 0 siblings, 0 replies; 12+ messages in thread From: Robert Pluim @ 2020-04-03 15:19 UTC (permalink / raw) To: Kazuhiro Ito; +Cc: 40343-done >>>>> On Fri, 03 Apr 2020 23:08:10 +0900, Kazuhiro Ito <kzhr@d1.dion.ne.jp> said: >> Thanks for that. This should fix all those cases: Kazuhiro> Thank you for the patch. It works well on Cygwin environment. But I Kazuhiro> noticed different problems in dns-query when TCP is used. Thanks for checking, pushed to master as 00f7744c1b Closing the bug. Kazuhiro> 1. dns-write function needs to be called with TCP-P option. Kazuhiro> 2. First 2 bytes of received data (length field) should be truncated Kazuhiro> for dns-read function. Or dns-read function should accept TCP-P Kazuhiro> option like dns-wrote function. Indeed, looks like thatʼs never worked. Iʼll fix those separately. Robert ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2020-04-03 15:19 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-03-31 8:46 bug#40343: 28.0.50; dns-set-servers fails on IPv6 available Windows Kazuhiro Ito 2020-03-31 9:50 ` Robert Pluim 2020-03-31 11:06 ` Kazuhiro Ito 2020-03-31 13:01 ` Robert Pluim 2020-03-31 14:22 ` Kazuhiro Ito 2020-03-31 14:28 ` Robert Pluim 2020-04-01 13:43 ` Kazuhiro Ito 2020-04-01 13:57 ` Robert Pluim 2020-04-01 14:55 ` Kazuhiro Ito 2020-04-03 8:42 ` Robert Pluim 2020-04-03 14:08 ` Kazuhiro Ito 2020-04-03 15:19 ` Robert Pluim
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).