cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: pycurl/libcurl/c-ares dynamic /etc/resolv.conf

From: Howard Chu <hyc_at_highlandsun.com>
Date: Wed, 26 May 2010 00:27:26 -0700

Dima Q wrote:
> On 05/26/10 01:25, Daniel Stenberg wrote:
>> On Tue, 25 May 2010, Dima Tisnek wrote:
>>
>>> The long-running process tries to access the server, the lookup fails
>>> Later when a wireless network is discovered, I'd like to be able to
>>> get libcurl to talk to the server, but alas! the resolv data is
>>> cached somewhere and I can't get through to c-ares (or libc?) to
>>> re-read /etc/resolv.conf.
>>
>> libc usally provides such a function for the stock resolver, but
>> c-ares doesn't.
>>
>> This is a problem that we're aware of but it has not been solved yet...
>>
> I could come up with a patch along the lines of glibc patches (ubuntu,
> fedora) where system config files are stat()ed and if needed, reloaded
> on every init. That would only work on unix, so advice on how to guard
> the changes from other platforms is appreciated.

In my experience, it's better not to have a dynamic /etc/resolv.conf at all.
Instead, run a local caching DNS server and hardwire /etc/resolv.conf to point
to localhost. On my machines I run dnsmasq with its DBUS interface enabled. I
have NetworkManager patched to send the current list of DNS servers to dnsmasq
whenever NM connects to a network. It's a much more reliable solution and no
unnecessary overhead.

-- 
   -- Howard Chu
   CTO, Symas Corp.           http://www.symas.com
   Director, Highland Sun     http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html
Received on 2010-05-26