Re: DNS from wifi not removed when switching to wire after suspend/resume
- From: Frederik Himpe <fhimpe telenet be>
- To: networkmanager-list gnome org
- Subject: Re: DNS from wifi not removed when switching to wire after suspend/resume
- Date: Tue, 17 Nov 2009 22:23:42 +0000 (UTC)
On Tue, 17 Nov 2009 12:55:00 -0800, Dan Williams wrote:
> On Tue, 2009-11-17 at 08:13 +0000, Frederik Himpe wrote:
>> I'm using NetworkManager 0.7.996 (git 20091021 snapshot) on Mandriva,
>> built with dhclient and resolvconf support.
>> I have a wireless connection to my AP at home and a wired DHCP
>> connection configured in networkmanager, both set to autoconnect and
>> available to all users. At home, networkmanager connects to my wireless
>> AP automatically. Then I suspend my system and resume it at work, where
>> it's docked and has a wired DHCP connection. NetworkManager connects
>> automatically to the wired connection, and deactivates the wlan0
>> connection, however NetworkManager just adds the DNS servers from my
>> wired connection at work to resolv.conf without removing the DNS server
>> from my wireless home connection. This results in long waits when
>> resolving hostnames.
> Nov 17 08:56:27 defected NetworkManager: <info> (eth0): writing
> resolv.conf to /sbin/resolvconf
> Until we figure out how resolvconf is interacting with NM here, or until
> we add more debugging to NM to figure out what's going on and what
> exactly NM is writing to resolvconf (which I'm pretty sure is correct),
> if you move /sbin/resolvconf out of the way, does allowing NM to write
> /etc/resolv.conf directly make things work again?
OK, I will test this tomorrow and I'll let you know.
Looking at resolvconf's man page, I guess that NetworkManager only calls
networkmanager -a, which will add stuff to resolvconf, but does not call
resolvconf -d first to clean up the outdated entries.
This seems to happen in src/named-manager/nm-named-manager.c in
I can indeed reproduce the problem by running resolvconf -a NetworkManager
and then sending a new nameserver: it will simply be added to resolv.conf
without removing the old one.
Actually, I'm surprised to see that NM always calls resolvonf with the
name NetworkManager as INTERFACE name. I rather expected it to call it
with the UUID or interface name of the connection, so that it simply calls
resolvonf -a UUID (or IFNAME) for every connection which comes online, and
resolvconf -d UUID/IFNAME for every connection going down. But I guess you
don't want this because NM wants to take complete control of resolv.conf
instead of letting the contents be managed by resolvconf?
] [Thread Prev