[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ai_flags in calls to getaddrinfo, broader call for reproducibility c

From: Robert Pluim
Subject: Re: ai_flags in calls to getaddrinfo, broader call for reproducibility check
Date: Mon, 11 Jan 2021 19:42:02 +0100

Robin Tarsiger <rtt@dasyatidae.com> writes:

> Robert Pluim wrote:
>>> There is no _reliable_ way I know of to determine this programmatically,
>>> certainly not without sending some probe queries with a high level of
>>> specific control over them, and I expect that would be a rather hairy
>>> thing to do just for a few tests, and not reasonably maintainable.
>> (require 'dns)
>> (skip-unless (dns-query "google.com" 'AAAA))
> Oh, wow, there's _already_ a dns.el in core? Huh. Well, that obviates
> my primary concerns about doing direct DNS probes, provided it works
> and is a reasonable thing to load for the test suite otherwise...
>> and then do the network-lookup-address-info tests (although on Windows
>> this depends on DNS over TCP working,
> Ergh. I just checked with `dig +tcp` against my crappy ISP CPE and it
> rejects the connection, which seems like anecdata toward that failing
> in a lot of configurations.


> Do you happen to know OTTOYH _why_ datagram sockets aren't supported
> in Emacs on Windows to start with... ?

Because the select implementation on windows does a one-byte readahead
to see if data is available, which breaks UDP. I had a patch at one
point to fix this, but I remember Eli not being very enthusiastic
about it. Iʼve attached what I think is the right version below (my
windows box died, so I can't be sure)

>> and either /etc/resolv.conf or a
>> working nslookup).
> The latter should at least be stock on Windows AFAIK. I'd forgotten that
> it shows the list of resolver addresses too.

Itʼs my least preferred option, it depends on running an external
binary and parsing the output, which is fragile.


Attachment: sys_select_improvement.patch
Description: Text Data

reply via email to

[Prev in Thread] Current Thread [Next in Thread]