tags 339418 +patch thanks, mate Hi!
I had been happily using ifplugd+guessnet+resolvconf to manage my connection for the past two years and I stuck with Sarge when it went stable. I am also using pdnsd as a caching nameserver to speed things up a little. It's been a very nice setup that all just worked (TM) and I've been really happy with it. But the other day I held my breath and upgraded to etch and I have since been having no end of trouble with this combination, particularly with dns lookups failing all the time. While I expected a few thing to get broken with such a big upgrade, I didn't expect this would be one of them, and it due to a big change in the behaviour of resolvconf. A quick look through /etc/resolv.conf showed me that my nameservers were never listed in there (127.0.0.1 was in there for pdnsd to work) but /e/n/interfaces static dns-nameserver entries and dhcp-derived nameserver entries were never present. After much frustration and working my way manually through the execution of /etc/resolvconf/update.d/libc I have tracked it down to the "ending at 127.*" change. This is already listed as bug #339418, but I see that it's marked "wontfix". But it makes the pdnsd + resolvconf useless for people who are switching networks (which after all is the entire point of resolvconf!) ... you might as well mark them as conflicting. My understanding is that pdnsd gets its config information about which nameservers to use from /etc/resolv.conf. So pdnsd will *never* work with resolvconf as * 127.0.0.1 (from lo.pdnsd) *must* be first in the file (otherwise pdnsd would never be used), but * pdnsd will never see any configuration information because there are no servers after that configured In bug #339418 you suggest that the real nameserver could be added in /etc/resolveconf/resolve.conf.d/tail so that it always shows through. Unfortunately, this is only a workaround for people who are always sitting on the one network... (in which case why bother using resolvconf at all?). In my case, my laptop needs to be able to pick up different dns servers depending on whether it is at work, at home, an internet cafe, a hotel etc etc.... and this is surely not an unusual use and this is exactly what resolvconf is for. So... I could work around this in a number of ways... * I can just give up on pdnsd (or any other caching nameserver, I guess) * I can hack around with interface-order so that lo.pdnsd is *never* picked up and put 127.0.0.1 in the head file (it can't be in base as you check that * revert your 127.* change to /etc/resolvconf/update.d/libc myself None of these is satisfactory and the second two mean messing around with distributed files and hoping that you don't make too many releases so that I can do it each time :( So.... can you please please please reconsider that #339418 is "wontfix"? Or could you at the very least make stopping at a 127.* address a config option from /etc/default/resolvconf? (something like the attached patch, perhaps... that's what I'm now running with) thanks in advance for your assistance cheers Stuart
--- libc-dist 2006-03-24 13:35:33.000000000 +0000 +++ libc 2006-03-24 15:56:24.000000000 +0000 @@ -18,4 +18,5 @@ # Default value REPORT_ABSENT_SYMLINK=yes +ALL_SERVERS_127=no # Default override @@ -75,5 +76,10 @@ done NMSRVRS="${NMSRVRS:+$NMSRVRS }$1" - case "$1" in (127.*) return 0 ;; esac + + case "$ALL_SERVERS_127" in + n|N|no|NO|No) + case "$1" in (127.*) return 0 ;; esac + ;; + esac N=$(($N + 1)) [ "$N" = 3 ] && return 0