You are not logged in.

#1 2016-05-04 21:48:00

wouter2512
Member
Registered: 2013-01-03
Posts: 6

[NetworkManager] VPN DNS-leak stop for dnsmasq

Hi,


I made a patch for NetworkManager to stop my DNS leaking via dnsmasq when using a VPN.
Thought I would share it with you. It is a dirty hack but it works.

diff --git a/src/dns-manager/nm-dns-dnsmasq.c b/src/dns-manager/nm-dns-dnsmasq.c
index 5ead5ec..0c5c432 100644
--- a/src/dns-manager/nm-dns-dnsmasq.c
+++ b/src/dns-manager/nm-dns-dnsmasq.c
@@ -270,13 +270,16 @@ update (NMDnsPlugin *plugin,
 		add_global_config (conf, global_config);
 	else {
 		/* Use split DNS for VPN configs */
+		bool vpn = FALSE;
 		for (iter = (GSList *) vpn_configs; iter; iter = g_slist_next (iter)) {
+			vpn = TRUE;
 			if (NM_IS_IP4_CONFIG (iter->data))
-				add_ip4_config (conf, NM_IP4_CONFIG (iter->data), TRUE);
+				add_ip4_config (conf, NM_IP4_CONFIG (iter->data), FALSE);
 			else if (NM_IS_IP6_CONFIG (iter->data))
-				add_ip6_config (conf, NM_IP6_CONFIG (iter->data), TRUE);
+				add_ip6_config (conf, NM_IP6_CONFIG (iter->data), FALSE);
 		}
 
+		if(!vpn){
 		/* Now add interface configs without split DNS */
 		for (iter = (GSList *) dev_configs; iter; iter = g_slist_next (iter)) {
 			if (NM_IS_IP4_CONFIG (iter->data))
@@ -292,6 +295,7 @@ update (NMDnsPlugin *plugin,
 			else if (NM_IS_IP6_CONFIG (iter->data))
 				add_ip6_config (conf, NM_IP6_CONFIG (iter->data), FALSE);
 		}
+		}
 	}
 
 	/* Write out the config file */

Wouter

Offline

#2 2016-05-05 04:48:30

x33a
Forum Fellow
Registered: 2009-08-15
Posts: 4,587

Re: [NetworkManager] VPN DNS-leak stop for dnsmasq

I think it would be better if you create an AUR package with the same.

Offline

Board footer

Powered by FluxBB