--- NetworkManager-pptp-0.9.6.0.orig/src/nm-pptp-service.c 2012-08-07 16:59:36.000000000 +0000 +++ NetworkManager-pptp-0.9.6.0/src/nm-pptp-service.c 2012-08-24 15:04:55.068982475 +0000 @@ -848,7 +848,15 @@ construct_pppd_args (NMPptpPlugin *plugi g_ptr_array_add (args, (gpointer) g_strdup ("nodetach")); g_ptr_array_add (args, (gpointer) g_strdup ("lock")); - g_ptr_array_add (args, (gpointer) g_strdup ("usepeerdns")); + + /* XXX: (GM): this is a hack to ensure that pppd isn't provided + with usepeerdns when NM's configs say to forget acquired + NSes. With usepeerdns and the current implementation of + this plugin, pppd will execute /etc/ppp/ip-up and will + replace /etc/resolv.conf. */ + if (!nm_setting_ip4_config_get_ignore_auto_dns ((NMSettingIP4Config *) nm_connection_get_setting (NM_PPTP_PLUGIN_GET_PRIVATE (plugin)->connection, NM_TYPE_SETTING_IP4_CONFIG))) + g_ptr_array_add (args, (gpointer) g_strdup ("usepeerdns")); + g_ptr_array_add (args, (gpointer) g_strdup ("noipdefault")); g_ptr_array_add (args, (gpointer) g_strdup ("nodefaultroute"));