Subject: Re: 'options single-request' support in c-ares?

Re: 'options single-request' support in c-ares?

From: Tommie Gannert <tommie_at_spotify.com>
Date: Mon, 17 Dec 2012 16:53:51 +0100

2012/12/10 Trey Duskin <trey_at_maldivica.com>:
> Hello,
>
> Is there currently any support in c-ares for the 'options single-request'
> option in resolver.conf?
> (http://man7.org/linux/man-pages/man5/resolver.5.html). We are trying to
> use libcurl for our system which could potentially be deployed behind some
> restrictive firewalls, and the way that glibc sends parallel A and AAAA
> queries from the same source port will cause an eventual timeout. The
> 'option single-request' config option is supposed to fix this (sending the
> two requests from two different source ports) for the system resolver, and
> it does, but for anything using libcurl (e.g. curl command-line, pycurl),
> the parallel queries come from the same source port, and we're stuck with
> the timeout. Can an option be set in c-ares to control this behavior?

I don't know of any, but I also don't think it would be that hard adding.

For those more well versed in the code: Wouldn't this just be a flag causing
ares__send() to always go the next_server() path?

-- 
Tommie Gannert
Software engineer, analytics and data infrastructure
Spotify AB
Received on 2012-12-17