unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Robin Tarsiger <rtt@dasyatidae.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: Robert Pluim <rpluim@gmail.com>, emacs-devel@gnu.org
Subject: Re: ai_flags in calls to getaddrinfo, broader call for reproducibility check
Date: Mon, 11 Jan 2021 11:07:33 -0600	[thread overview]
Message-ID: <ee8b96c0-1137-7a4e-184f-0dffd7f114dc@dasyatidae.com> (raw)
In-Reply-To: <8335z7fmnz.fsf@gnu.org>

Eli Zaretskii wrote:
> Is it possible to check this via network-interface-list, and avoid the
> test with IPv6 if that is bound to fail?

The relevant part of the tests should, generally, be about DNS _lookups_
of IPv6 addresses. This is not "truly" related to whether your local host
has IPv6 connectivity at the network layer. I have no IPv6 routing at
home currently, but getaddrinfo will still give me all the IPv6 results
I want; I just won't be able to connect there. I expect that case to be
common. The opposite case, where I could have IPv6 networking available
but have restrictive upstream DNS resolvers blocking queries for or results
containing IPv6 addresses, is also theoretically possible, though I would
expect it to be rare.

So basically you'd be testing the wrong thing. You could try to err on the
side of caution, but then you'd be excluding the test in a lot of cases
that really should work.

If your upstream resolvers default to mangling or blocking AAAA queries, as
my current best hypothesis suggests, this is not something an application
can reasonably take responsibility for fixing up, and we'd want to go the
route of "skip network-environment-dependent tests when on hosts that are
in strange/broken network environments". I don't know whether there's an
existing toggle for that; if not, then that would be the thing to put in
(at whatever granularity seems appropriate).

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.

Another perspective on above is that when you mention "behind firewalls up
the kazoo", what my intuition imagines is something like: corporate DNS
filtering which only allows specific request types and either was never
updated to think of AAAA queries as valid, or is operated in a way assuming
that users will never have a legitimate need for them (because they "won't
be able to use" the results), or does this as a workaround for some broken
behavior elsewhere (such as some other device used in the organization
which will prefer an IPv6 address response even when it's not reachable,
and fail to fall back to IPv4?) or... any number of things like that.

The main thing that hypothesis doesn't explain is the discrepancy in the
any-family results, but that could easily be by accident depending on how
the specifics of the filtering interact with the specifics of the pattern
of queries Windows generates under those circumstances, which is why I was
originally thinking of finding out the latter; or it could be some local
filtering that Windows does depending on local connectivity for similar
reasons to the above, which is why I wanted to see whether those flags
made any difference for Windows machines on more "conventional" networks.

-RTT



  reply	other threads:[~2021-01-11 17:07 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-31 15:06 ai_flags in calls to getaddrinfo Eli Zaretskii
2020-12-31 22:40 ` Robin Tarsiger
2021-01-01  7:43   ` Eli Zaretskii
2021-01-01 11:40     ` Robin Tarsiger
2021-01-01 12:04       ` Robin Tarsiger
2021-01-01 12:48       ` Eli Zaretskii
2021-01-02  0:19         ` Robin Tarsiger
2021-01-03 16:00   ` Eli Zaretskii
2021-01-11 10:47     ` ai_flags in calls to getaddrinfo, broader call for reproducibility check Robin Tarsiger
2021-01-11 12:42       ` Robert Pluim
2021-01-11 15:25       ` Eli Zaretskii
2021-01-11 15:47         ` Robert Pluim
2021-01-11 16:44           ` Eli Zaretskii
2021-01-11 17:07             ` Robin Tarsiger [this message]
2021-01-11 17:53               ` Robert Pluim
2021-01-11 18:30                 ` Robin Tarsiger
2021-01-11 18:42                   ` Robert Pluim
2021-01-11 19:28                     ` Stefan Monnier
2021-01-11 20:12                       ` Robert Pluim
2021-01-11 20:41                         ` Eli Zaretskii
2021-01-11 20:55                           ` Stefan Monnier
2021-01-11 21:02                           ` Robert Pluim
2021-01-11 21:09                             ` Lars Ingebrigtsen
2021-01-11 21:15                               ` Robert Pluim
2021-01-11 22:42                                 ` Lars Ingebrigtsen
2021-01-12  9:40                                   ` Robert Pluim
2021-01-12 12:49                                     ` Lars Ingebrigtsen
2021-01-12 13:04                                       ` Robert Pluim
2021-01-12 14:08                                         ` Lars Ingebrigtsen
2021-01-12 14:29                                           ` Robert Pluim
2021-01-12 18:06                                             ` Lars Ingebrigtsen
2021-01-12 15:14                                       ` Stefan Monnier
2021-01-12 15:45                                         ` Eli Zaretskii
2021-01-12  3:29                             ` Eli Zaretskii
2021-01-11 20:46                 ` Eli Zaretskii
2021-01-11 20:56                   ` Robert Pluim
2021-01-12 15:01                     ` Eli Zaretskii
2021-01-12 15:36                       ` Robert Pluim
2021-01-12 15:42                       ` Eli Zaretskii
2021-01-12 16:00                         ` Robert Pluim
2021-01-12 16:05                           ` Eli Zaretskii
2021-01-12 17:56                             ` Robert Pluim
2021-01-11 19:32           ` Basil L. Contovounesios
2021-01-11 20:19             ` Robert Pluim
2021-01-11 23:57           ` Andy Moreton
2021-01-12  9:44             ` Robert Pluim
2021-01-12 11:56               ` tomas
2021-01-01 10:59 ` ai_flags in calls to getaddrinfo Lars Ingebrigtsen
2021-01-01 12:50   ` Eli Zaretskii
2021-01-02  5:40     ` Lars Ingebrigtsen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ee8b96c0-1137-7a4e-184f-0dffd7f114dc@dasyatidae.com \
    --to=rtt@dasyatidae.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=rpluim@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).