<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Commenting below ...<br>
    <br>
    <div class="moz-cite-prefix">On 1/19/22 2:51 PM, Dmitry Karpov via
      c-ares wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:BYAPR01MB56064059B8D6F5670AD3A01FC3599@BYAPR01MB5606.prod.exchangelabs.com">
      <div class="WordSection1">
        <p class="MsoNormal">
          > Infact, happyeyeballs itself doesn't always do parallel
          connection attempts, its an implementation-defined delay
          before also attempting the next address in the list.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">In case of Happy Eyeballs, a delay between
          IPv4 and IPv6 connections is constant and typically relatively
          short – 200-300ms.<br>
          But non-functional IPv6 name servers in the server list may
          create dynamic delays in connection establishment which can be
          very large.<br>
          <br>
          <o:p></o:p></p>
        <p class="MsoNormal">By default, c-ares uses 5s timeout per name
          server, so it may take 5s and more (if several IPv6 name
          servers are in the list)  to get to the connection Happy
          Eyeballs thus taking much more than expected 200-300ms.</p>
      </div>
    </blockquote>
    <br>
    It would be assumed as part of this patch set, this timer would be
    reduced.<br>
    <br>
    <br>
    <blockquote type="cite"
cite="mid:BYAPR01MB56064059B8D6F5670AD3A01FC3599@BYAPR01MB5606.prod.exchangelabs.com">
      <div class="WordSection1">
        <p class="MsoNormal"><o:p></o:p></p>
        <p class="MsoNormal"><br>
          > It would be much easier to stay closer to happy eyeballs
          and just sort the dns server list using prior result
          success/fail (even upfront sorting using some algorithm to
          interleave ipv6/ipv4 in a pattern would help,
          <o:p></o:p></p>
        <p class="MsoNormal">>  maybe with using logic such as from
          RFC6724 sec 2.1 like we do in ares_getaddrinfo for returned
          addresses, but instead of the nameservers themselves). 
          <br>
          <br>
          Yes, of course, it is possible that c-ares client can
          implement some kind of name server sorting/filtering logic
          outside of c-ares and just pass a list of “good” name servers
          to c-ares,  but in this case it has to be more involved into
          the name resolution business than it would be desired.<br>
        </p>
      </div>
    </blockquote>
    <br>
    I wasn't suggesting this be outside of c-ares, I was talking about
    implementing this inside of c-ares as a simpler alternative to your
    proposal.<br>
    <br>
    -Brad<br>
  </body>
</html>