Comment 1 for bug 107564

Revision history for this message
Matthew Williams (number6) wrote :

Looking further into the code, it looks like all VPN clients that can pass along nameserver information will suffer from this problem.

In src/vpn-manager/nm-vpn-service.c, the function nm_vpn_service_stage4_ip_config_get parses the dbus message that contains the DNS information. It calls nm_vpn_connection_set_config which eventually calls nm_system_should_modify_resolv_conf. Normally, it seems that network-manager assumes that dhclient, for example, looks after updating /etc/resolv.conf if resolvconf is installed. There is no accounting for the case where a vpn client wishes to set DNS information and resolvconf is installed.

I am not sure of the cleanest way to fix this problem. There is currently no way to indicate to to network-manager that it is responsible for setting DNS settings, even if resolvconf is installed. It would be nice for a parameter to be added to the "config" data that indicates that network-manager should call resolvconf if the parameter is set and if resolvconf is installed. In other words, there should be three possibilities:

1. resolvconf is not installed, always modify /etc/resolv.conf manually
2. resolvconf is installed and another element, like dhclient, will look after calling resolvconf
3. resolvconf is installed and network-manager must call resolvconf OR modify /etc/resolv.conf manually.

It is case 3 that is currently not handled.