summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorSjoerd Simons <sjoerd@luon.net>2014-04-26 20:55:09 +0200
committerSjoerd Simons <sjoerd@luon.net>2014-04-26 20:55:09 +0200
commit59c3714a494c3b3765657c0551ad82842d98a7d2 (patch)
treee4dcdf9791fc40581f02bfaf870c30b102b3133a /src
parenta4256940da049f91bbbea5e53e469a59ea9c10f7 (diff)
Imported Upstream version 0.9.8.10 upstream/0.9.8.10
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am18
-rw-r--r--src/Makefile.in22
-rw-r--r--src/NetworkManagerUtils.c54
-rw-r--r--src/bluez-manager/Makefile.am26
-rw-r--r--src/bluez-manager/Makefile.in16
-rw-r--r--src/dhcp-manager/Makefile.am7
-rw-r--r--src/dhcp-manager/Makefile.in9
-rw-r--r--src/dhcp-manager/nm-dhcp-client.c20
-rw-r--r--src/dhcp-manager/nm-dhcp-dhclient-utils.c4
-rw-r--r--src/dhcp-manager/nm-dhcp-dhclient.c2
-rw-r--r--src/dhcp-manager/nm-dhcp-dhcpcd.c14
-rw-r--r--src/dhcp-manager/nm-dhcp-manager.c7
-rw-r--r--src/dhcp-manager/tests/Makefile.am7
-rw-r--r--src/dhcp-manager/tests/Makefile.in9
-rw-r--r--src/dns-manager/Makefile.am24
-rw-r--r--src/dns-manager/Makefile.in24
-rw-r--r--src/dns-manager/nm-dns-dnsmasq.c3
-rw-r--r--src/dnsmasq-manager/Makefile.am14
-rw-r--r--src/dnsmasq-manager/Makefile.in14
-rw-r--r--src/dnsmasq-manager/nm-dnsmasq-manager.c4
-rw-r--r--src/firewall-manager/Makefile.am18
-rw-r--r--src/firewall-manager/Makefile.in18
-rw-r--r--src/firewall-manager/nm-firewall-manager.c19
-rw-r--r--src/generated/Makefile.am16
-rw-r--r--src/generated/Makefile.in25
-rw-r--r--src/generated/nm-enum-types.c369
-rw-r--r--src/generated/nm-enum-types.h60
-rw-r--r--src/generated/nm-marshal.c72
-rw-r--r--src/generated/nm-marshal.h18
-rw-r--r--src/ip6-manager/Makefile.am16
-rw-r--r--src/ip6-manager/Makefile.in16
-rw-r--r--src/logging/Makefile.in2
-rw-r--r--src/main.c6
-rw-r--r--src/modem-manager/Makefile.am14
-rw-r--r--src/modem-manager/Makefile.in20
-rw-r--r--src/modem-manager/nm-modem-manager.c71
-rw-r--r--src/nm-device-wifi.c16
-rw-r--r--src/nm-device.c48
-rw-r--r--src/nm-manager.c158
-rw-r--r--src/nm-policy.c54
-rw-r--r--src/nm-system.c12
-rw-r--r--src/org.freedesktop.NetworkManager.conf1
-rw-r--r--src/posix-signals/Makefile.in2
-rw-r--r--src/ppp-manager/Makefile.am12
-rw-r--r--src/ppp-manager/Makefile.in26
-rw-r--r--src/settings/Makefile.am14
-rw-r--r--src/settings/Makefile.in28
-rw-r--r--src/settings/nm-agent-manager.c82
-rw-r--r--src/settings/nm-settings-connection.c2
-rw-r--r--src/settings/nm-settings-error.h1
-rw-r--r--src/settings/nm-settings.c37
-rw-r--r--src/settings/plugins/Makefile.in2
-rw-r--r--src/settings/plugins/example/Makefile.am18
-rw-r--r--src/settings/plugins/example/Makefile.in20
-rw-r--r--src/settings/plugins/ifcfg-rh/Makefile.am11
-rw-r--r--src/settings/plugins/ifcfg-rh/Makefile.in86
-rw-r--r--src/settings/plugins/ifcfg-rh/reader.c5
-rw-r--r--src/settings/plugins/ifcfg-rh/tests/Makefile.am10
-rw-r--r--src/settings/plugins/ifcfg-rh/tests/Makefile.in31
-rw-r--r--src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.in2
-rw-r--r--src/settings/plugins/ifcfg-suse/Makefile.in2
-rw-r--r--src/settings/plugins/ifnet/Makefile.am26
-rw-r--r--src/settings/plugins/ifnet/Makefile.in65
-rw-r--r--src/settings/plugins/ifnet/connection_parser.c2
-rw-r--r--src/settings/plugins/ifnet/tests/Makefile.am23
-rw-r--r--src/settings/plugins/ifnet/tests/Makefile.in40
-rw-r--r--src/settings/plugins/ifupdown/Makefile.am16
-rw-r--r--src/settings/plugins/ifupdown/Makefile.in39
-rw-r--r--src/settings/plugins/ifupdown/tests/Makefile.am16
-rw-r--r--src/settings/plugins/ifupdown/tests/Makefile.in33
-rw-r--r--src/settings/plugins/keyfile/Makefile.am17
-rw-r--r--src/settings/plugins/keyfile/Makefile.in80
-rw-r--r--src/settings/plugins/keyfile/plugin.c3
-rw-r--r--src/settings/plugins/keyfile/tests/Makefile.am16
-rw-r--r--src/settings/plugins/keyfile/tests/Makefile.in33
-rw-r--r--src/settings/plugins/keyfile/tests/keyfiles/Makefile.in2
-rw-r--r--src/settings/tests/Makefile.am10
-rw-r--r--src/settings/tests/Makefile.in31
-rw-r--r--src/supplicant-manager/Makefile.am18
-rw-r--r--src/supplicant-manager/Makefile.in18
-rw-r--r--src/supplicant-manager/tests/Makefile.am14
-rw-r--r--src/supplicant-manager/tests/Makefile.in12
-rw-r--r--src/tests/Makefile.am16
-rw-r--r--src/tests/Makefile.in56
-rw-r--r--src/vpn-manager/Makefile.am31
-rw-r--r--src/vpn-manager/Makefile.in30
-rw-r--r--src/wifi/Makefile.am14
-rw-r--r--src/wifi/Makefile.in16
-rw-r--r--src/wifi/wifi-utils-nl80211.c9
-rw-r--r--src/wimax/Makefile.am18
-rw-r--r--src/wimax/Makefile.in20
91 files changed, 1189 insertions, 1273 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 3ca5a7da..3ea6241c 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -21,7 +21,8 @@ endif
 
 SUBDIRS += . tests
 
-INCLUDES = -I${top_srcdir} \
+AM_CPPFLAGS = \
+           -I${top_srcdir} \
            -I${top_builddir}/include \
            -I${top_srcdir}/include \
            -I${top_builddir}/src/generated \
@@ -65,7 +66,8 @@ libtest_dhcp_la_SOURCES = \
 libtest_dhcp_la_CPPFLAGS = \
 	$(GLIB_CFLAGS) \
 	$(DBUS_CFLAGS) \
-	$(LIBNL_CFLAGS)
+	$(LIBNL_CFLAGS) \
+	$(AM_CPPFLAGS)
 
 libtest_dhcp_la_LIBADD = \
 	$(top_builddir)/src/generated/libnm-generated.la \
@@ -84,7 +86,8 @@ libtest_policy_hosts_la_SOURCES = \
 
 libtest_policy_hosts_la_CPPFLAGS = \
 	-DSYSCONFDIR=\"$(sysconfdir)\" \
-	$(GLIB_CFLAGS)
+	$(GLIB_CFLAGS) \
+	$(AM_CPPFLAGS)
 
 libtest_policy_hosts_la_LIBADD = \
 	${top_builddir}/src/logging/libnm-logging.la \
@@ -100,7 +103,8 @@ libtest_wifi_ap_utils_la_SOURCES = \
 	nm-wifi-ap-utils.h
 
 libtest_wifi_ap_utils_la_CPPFLAGS = \
-	$(GLIB_CFLAGS)
+	$(GLIB_CFLAGS) \
+	$(AM_CPPFLAGS)
 
 libtest_wifi_ap_utils_la_LIBADD = \
 	${top_builddir}/libnm-util/libnm-util.la \
@@ -301,6 +305,7 @@ NetworkManager_CPPFLAGS = \
 	$(POLKIT_CFLAGS) \
 	$(SYSTEMD_LOGIN_CFLAGS) \
 	$(LIBSOUP_CFLAGS) \
+	$(AM_CPPFLAGS) \
 	-DBINDIR=\"$(bindir)\" \
 	-DSBINDIR=\"$(sbindir)\" \
 	-DLIBEXECDIR=\"$(libexecdir)\" \
@@ -361,5 +366,8 @@ install-data-hook:
 	$(mkinstalldirs) -m 0700 $(DESTDIR)$(statedir)
 	$(mkinstalldirs) -m 0755 $(DESTDIR)$(pkglibdir)
 
-CLEANFILES = $(BUILT_SOURCES)
+CLEANFILES = \
+	$(BUILT_SOURCES) \
+	nm-enum-types.c \
+	nm-enum-types.h
 
diff --git a/src/Makefile.in b/src/Makefile.in
index 22898dc8..474ceb38 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -416,6 +416,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -438,6 +439,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -626,7 +628,8 @@ SUBDIRS = generated logging posix-signals dns-manager vpn-manager \
 	dhcp-manager ip6-manager supplicant-manager ppp-manager \
 	dnsmasq-manager modem-manager bluez-manager firewall-manager \
 	wifi settings $(am__append_1) . tests
-INCLUDES = -I${top_srcdir} \
+AM_CPPFLAGS = \
+           -I${top_srcdir} \
            -I${top_builddir}/include \
            -I${top_srcdir}/include \
            -I${top_builddir}/src/generated \
@@ -670,7 +673,8 @@ libtest_dhcp_la_SOURCES = \
 libtest_dhcp_la_CPPFLAGS = \
 	$(GLIB_CFLAGS) \
 	$(DBUS_CFLAGS) \
-	$(LIBNL_CFLAGS)
+	$(LIBNL_CFLAGS) \
+	$(AM_CPPFLAGS)
 
 libtest_dhcp_la_LIBADD = \
 	$(top_builddir)/src/generated/libnm-generated.la \
@@ -689,7 +693,8 @@ libtest_policy_hosts_la_SOURCES = \
 
 libtest_policy_hosts_la_CPPFLAGS = \
 	-DSYSCONFDIR=\"$(sysconfdir)\" \
-	$(GLIB_CFLAGS)
+	$(GLIB_CFLAGS) \
+	$(AM_CPPFLAGS)
 
 libtest_policy_hosts_la_LIBADD = \
 	${top_builddir}/src/logging/libnm-logging.la \
@@ -704,7 +709,8 @@ libtest_wifi_ap_utils_la_SOURCES = \
 	nm-wifi-ap-utils.h
 
 libtest_wifi_ap_utils_la_CPPFLAGS = \
-	$(GLIB_CFLAGS)
+	$(GLIB_CFLAGS) \
+	$(AM_CPPFLAGS)
 
 libtest_wifi_ap_utils_la_LIBADD = \
 	${top_builddir}/libnm-util/libnm-util.la \
@@ -763,7 +769,7 @@ BUILT_SOURCES = \
 
 NetworkManager_CPPFLAGS = $(DBUS_CFLAGS) $(GLIB_CFLAGS) \
 	$(GUDEV_CFLAGS) $(LIBNL_CFLAGS) $(POLKIT_CFLAGS) \
-	$(SYSTEMD_LOGIN_CFLAGS) $(LIBSOUP_CFLAGS) \
+	$(SYSTEMD_LOGIN_CFLAGS) $(LIBSOUP_CFLAGS) $(AM_CPPFLAGS) \
 	-DBINDIR=\"$(bindir)\" -DSBINDIR=\"$(sbindir)\" \
 	-DLIBEXECDIR=\"$(libexecdir)\" -DDATADIR=\"$(datadir)\" \
 	-DSYSCONFDIR=\"$(sysconfdir)\" \
@@ -808,7 +814,11 @@ EXTRA_DIST = \
 
 rundir = $(localstatedir)/run/NetworkManager
 statedir = $(localstatedir)/lib/NetworkManager
-CLEANFILES = $(BUILT_SOURCES)
+CLEANFILES = \
+	$(BUILT_SOURCES) \
+	nm-enum-types.c \
+	nm-enum-types.h
+
 all: $(BUILT_SOURCES)
 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
 
diff --git a/src/NetworkManagerUtils.c b/src/NetworkManagerUtils.c
index f2d72bd1..2f369d68 100644
--- a/src/NetworkManagerUtils.c
+++ b/src/NetworkManagerUtils.c
@@ -99,60 +99,6 @@ nm_spawn_process (const char *args)
 	return status;
 }
 
-/*
- * nm_utils_ip4_netmask_to_prefix
- *
- * Figure out the network prefix from a netmask.  Netmask
- * MUST be in network byte order.
- *
- */
-guint32
-nm_utils_ip4_netmask_to_prefix (guint32 netmask)
-{
-	guchar *p, *end;
-	guint32 prefix = 0;
-
-	p = (guchar *) &netmask;
-	end = p + sizeof (guint32);
-
-	while ((*p == 0xFF) && p < end) {
-		prefix += 8;
-		p++;
-	}
-
-	if (p < end) {
-		guchar v = *p;
-
-		while (v) {
-			prefix++;
-			v <<= 1;
-		}
-	}
-
-	return prefix;
-}
-
-/*
- * nm_utils_ip4_prefix_to_netmask
- *
- * Figure out the netmask from a prefix.
- *
- */
-guint32
-nm_utils_ip4_prefix_to_netmask (guint32 prefix)
-{
-	guint32 msk = 0x80000000;
-	guint32 netmask = 0;
-
-	while (prefix > 0) {
-		netmask |= msk;
-		msk >>= 1;
-		prefix--;
-	}
-
-	return (guint32) htonl (netmask);
-}
-
 void
 nm_utils_merge_ip4_config (NMIP4Config *ip4_config, NMSettingIP4Config *setting)
 {
diff --git a/src/bluez-manager/Makefile.am b/src/bluez-manager/Makefile.am
index aee27217..fb836abf 100644
--- a/src/bluez-manager/Makefile.am
+++ b/src/bluez-manager/Makefile.am
@@ -1,4 +1,6 @@
-INCLUDES = \
+noinst_LTLIBRARIES = libbluez-manager.la
+
+libbluez_manager_la_CPPFLAGS = \
 	-I${top_srcdir} \
 	-I${top_builddir}/include \
 	-I${top_srcdir}/include \
@@ -7,9 +9,15 @@ INCLUDES = \
 	-I${top_srcdir}/src \
 	-I${top_builddir}/src/generated \
 	-I${top_srcdir}/src/generated \
-	-I${top_srcdir}/src/logging
-
-noinst_LTLIBRARIES = libbluez-manager.la
+	-I${top_srcdir}/src/logging \
+	$(DBUS_CFLAGS) \
+	$(GLIB_CFLAGS) \
+	$(BLUEZ_CFLAGS) \
+	-DBINDIR=\"$(bindir)\" \
+	-DDATADIR=\"$(datadir)\" \
+	-DSYSCONFDIR=\"$(sysconfdir)\" \
+	-DLIBEXECDIR=\"$(libexecdir)\" \
+	-DLOCALSTATEDIR=\"$(localstatedir)\"
 
 libbluez_manager_la_SOURCES = \
 	nm-bluez-common.h \
@@ -27,16 +35,6 @@ libbluez_manager_la_SOURCES += \
 	nm-bluez-manager.c
 endif
 
-libbluez_manager_la_CPPFLAGS = \
-	$(DBUS_CFLAGS) \
-	$(GLIB_CFLAGS) \
-	$(BLUEZ_CFLAGS) \
-	-DBINDIR=\"$(bindir)\" \
-	-DDATADIR=\"$(datadir)\" \
-	-DSYSCONFDIR=\"$(sysconfdir)\" \
-	-DLIBEXECDIR=\"$(libexecdir)\" \
-	-DLOCALSTATEDIR=\"$(localstatedir)\"
-
 libbluez_manager_la_LIBADD = \
 	$(top_builddir)/src/generated/libnm-generated.la \
 	$(top_builddir)/src/logging/libnm-logging.la \
diff --git a/src/bluez-manager/Makefile.in b/src/bluez-manager/Makefile.in
index f4dd166f..f72768a6 100644
--- a/src/bluez-manager/Makefile.in
+++ b/src/bluez-manager/Makefile.in
@@ -224,6 +224,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -246,6 +247,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -430,7 +432,8 @@ with_dhclient = @with_dhclient@
 with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
-INCLUDES = \
+noinst_LTLIBRARIES = libbluez-manager.la
+libbluez_manager_la_CPPFLAGS = \
 	-I${top_srcdir} \
 	-I${top_builddir}/include \
 	-I${top_srcdir}/include \
@@ -439,13 +442,7 @@ INCLUDES = \
 	-I${top_srcdir}/src \
 	-I${top_builddir}/src/generated \
 	-I${top_srcdir}/src/generated \
-	-I${top_srcdir}/src/logging
-
-noinst_LTLIBRARIES = libbluez-manager.la
-libbluez_manager_la_SOURCES = nm-bluez-common.h nm-bluez-device.c \
-	nm-bluez-device.h nm-bluez-manager.h $(am__append_1) \
-	$(am__append_2)
-libbluez_manager_la_CPPFLAGS = \
+	-I${top_srcdir}/src/logging \
 	$(DBUS_CFLAGS) \
 	$(GLIB_CFLAGS) \
 	$(BLUEZ_CFLAGS) \
@@ -455,6 +452,9 @@ libbluez_manager_la_CPPFLAGS = \
 	-DLIBEXECDIR=\"$(libexecdir)\" \
 	-DLOCALSTATEDIR=\"$(localstatedir)\"
 
+libbluez_manager_la_SOURCES = nm-bluez-common.h nm-bluez-device.c \
+	nm-bluez-device.h nm-bluez-manager.h $(am__append_1) \
+	$(am__append_2)
 libbluez_manager_la_LIBADD = \
 	$(top_builddir)/src/generated/libnm-generated.la \
 	$(top_builddir)/src/logging/libnm-logging.la \
diff --git a/src/dhcp-manager/Makefile.am b/src/dhcp-manager/Makefile.am
index 40a05834..f32a2167 100644
--- a/src/dhcp-manager/Makefile.am
+++ b/src/dhcp-manager/Makefile.am
@@ -1,6 +1,6 @@
 SUBDIRS = . tests
 
-INCLUDES = \
+AM_CPPFLAGS = \
 	-I${top_srcdir} \
 	-I${top_builddir}/include \
 	-I${top_srcdir}/include \
@@ -10,7 +10,8 @@ INCLUDES = \
 	-I${top_srcdir}/src/posix-signals \
 	-I${top_builddir}/libnm-util \
 	-I${top_srcdir}/libnm-util \
-	-I${top_srcdir}/src
+	-I${top_srcdir}/src \
+	-DRUNDIR=\"$(rundir)\"
 
 noinst_LTLIBRARIES = libdhcp-manager.la libdhcp-dhclient.la
 
@@ -25,6 +26,7 @@ libdhcp_dhclient_la_SOURCES = \
 libdhcp_dhclient_la_CPPFLAGS = \
 	$(DBUS_CFLAGS) \
 	$(GLIB_CFLAGS) \
+	$(AM_CPPFLAGS) \
 	-DSYSCONFDIR=\"$(sysconfdir)\" \
 	-DLIBEXECDIR=\"$(libexecdir)\" \
 	-DLOCALSTATEDIR=\"$(localstatedir)\" \
@@ -52,6 +54,7 @@ libdhcp_manager_la_SOURCES = \
 libdhcp_manager_la_CPPFLAGS = \
 	$(DBUS_CFLAGS) \
 	$(GLIB_CFLAGS) \
+	$(AM_CPPFLAGS) \
 	-DSYSCONFDIR=\"$(sysconfdir)\" \
 	-DLIBEXECDIR=\"$(libexecdir)\" \
 	-DLOCALSTATEDIR=\"$(localstatedir)\" \
diff --git a/src/dhcp-manager/Makefile.in b/src/dhcp-manager/Makefile.in
index 31920ec4..db4b0c91 100644
--- a/src/dhcp-manager/Makefile.in
+++ b/src/dhcp-manager/Makefile.in
@@ -260,6 +260,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -282,6 +283,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -467,7 +469,7 @@ with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
 SUBDIRS = . tests
-INCLUDES = \
+AM_CPPFLAGS = \
 	-I${top_srcdir} \
 	-I${top_builddir}/include \
 	-I${top_srcdir}/include \
@@ -477,7 +479,8 @@ INCLUDES = \
 	-I${top_srcdir}/src/posix-signals \
 	-I${top_builddir}/libnm-util \
 	-I${top_srcdir}/libnm-util \
-	-I${top_srcdir}/src
+	-I${top_srcdir}/src \
+	-DRUNDIR=\"$(rundir)\"
 
 noinst_LTLIBRARIES = libdhcp-manager.la libdhcp-dhclient.la
 
@@ -491,6 +494,7 @@ libdhcp_dhclient_la_SOURCES = \
 libdhcp_dhclient_la_CPPFLAGS = \
 	$(DBUS_CFLAGS) \
 	$(GLIB_CFLAGS) \
+	$(AM_CPPFLAGS) \
 	-DSYSCONFDIR=\"$(sysconfdir)\" \
 	-DLIBEXECDIR=\"$(libexecdir)\" \
 	-DLOCALSTATEDIR=\"$(localstatedir)\" \
@@ -518,6 +522,7 @@ libdhcp_manager_la_SOURCES = \
 libdhcp_manager_la_CPPFLAGS = \
 	$(DBUS_CFLAGS) \
 	$(GLIB_CFLAGS) \
+	$(AM_CPPFLAGS) \
 	-DSYSCONFDIR=\"$(sysconfdir)\" \
 	-DLIBEXECDIR=\"$(libexecdir)\" \
 	-DLOCALSTATEDIR=\"$(localstatedir)\" \
diff --git a/src/dhcp-manager/nm-dhcp-client.c b/src/dhcp-manager/nm-dhcp-client.c
index f4e94a6e..980fcab8 100644
--- a/src/dhcp-manager/nm-dhcp-client.c
+++ b/src/dhcp-manager/nm-dhcp-client.c
@@ -1533,16 +1533,26 @@ dispose (GObject *object)
 	 * the DHCP client.
 	 */
 
-	if (priv->remove_id)
+	if (priv->remove_id) {
 		g_source_remove (priv->remove_id);
+		priv->remove_id = 0;
+	}
+
+	if (priv->options) {
+		g_hash_table_destroy (priv->options);
+		priv->options = NULL;
+	}
+	g_clear_pointer (&priv->iface, g_free);
 
-	g_hash_table_destroy (priv->options);
-	g_free (priv->iface);
-	if (priv->hwaddr)
+	if (priv->hwaddr) {
 		g_byte_array_free (priv->hwaddr, TRUE);
+		priv->hwaddr = NULL;
+	}
 
-	if (priv->duid)
+	if (priv->duid) {
 		g_byte_array_free (priv->duid, TRUE);
+		priv->duid = NULL;
+	}
 
 	G_OBJECT_CLASS (nm_dhcp_client_parent_class)->dispose (object);
 }
diff --git a/src/dhcp-manager/nm-dhcp-dhclient-utils.c b/src/dhcp-manager/nm-dhcp-dhclient-utils.c
index 89fa51ee..db4bf7e8 100644
--- a/src/dhcp-manager/nm-dhcp-dhclient-utils.c
+++ b/src/dhcp-manager/nm-dhcp-dhclient-utils.c
@@ -168,6 +168,10 @@ nm_dhcp_dhclient_create_config (const char *interface,
 					continue;
 			}
 
+			/* Ignore 'script' since we pass our own */
+			if (g_str_has_prefix (p, "script "))
+				continue;
+
 			/* Check for "also require" */
 			if (!strncmp (p, ALSOREQ_TAG, strlen (ALSOREQ_TAG))) {
 				in_alsoreq = TRUE;
diff --git a/src/dhcp-manager/nm-dhcp-dhclient.c b/src/dhcp-manager/nm-dhcp-dhclient.c
index 5b64b132..9a42f0e4 100644
--- a/src/dhcp-manager/nm-dhcp-dhclient.c
+++ b/src/dhcp-manager/nm-dhcp-dhclient.c
@@ -339,7 +339,7 @@ nm_dhcp_dhclient_get_lease_config (const char *iface, const char *uuid, gboolean
 	}
 
 out:
-	g_slist_foreach (parsed, (GFunc) g_hash_table_destroy, NULL);
+	g_slist_free_full (parsed, (GDestroyNotify) g_hash_table_destroy);
 	g_free (leasefile);
 	return leases;
 }
diff --git a/src/dhcp-manager/nm-dhcp-dhcpcd.c b/src/dhcp-manager/nm-dhcp-dhcpcd.c
index f3245ee5..f978cccc 100644
--- a/src/dhcp-manager/nm-dhcp-dhcpcd.c
+++ b/src/dhcp-manager/nm-dhcp-dhcpcd.c
@@ -21,6 +21,7 @@
  */
 
 
+#include <config.h>
 #include <glib.h>
 #include <glib/gi18n.h>
 #include <dbus/dbus.h>
@@ -110,7 +111,10 @@ ip4_start (NMDHCPClient *client,
 	iface = nm_dhcp_client_get_iface (client);
 	uuid = nm_dhcp_client_get_uuid (client);
 
-	priv->pid_file = g_strdup_printf (NMSTATEDIR "/dhcpcd-%s.pid", iface);
+	/* dhcpcd does not allow custom pidfiles; the pidfile is always
+	 * RUNDIR "dhcpcd-<ifname>.pid".
+	 */
+	priv->pid_file = g_strdup_printf (RUNDIR "/dhcpcd-%s.pid", iface);
 	if (!priv->pid_file) {
 		nm_log_warn (LOGD_DHCP4, "(%s): not enough memory for dhcpcd options.", iface);
 		return -1;
@@ -140,6 +144,14 @@ ip4_start (NMDHCPClient *client,
 	g_ptr_array_add (argv, (gpointer) "-c");	/* Set script file */
 	g_ptr_array_add (argv, (gpointer) ACTION_SCRIPT_PATH );
 
+#ifdef DHCPCD_SUPPORTS_IPV6
+	/* IPv4-only for now.  NetworkManager knows better than dhcpcd when to
+	 * run IPv6, and dhcpcd's automatic Router Solicitations cause problems
+	 * with devices that don't expect them.
+	 */
+	g_ptr_array_add (argv, (gpointer) "-4");
+#endif
+
 	if (hostname && strlen (hostname)) {
 		g_ptr_array_add (argv, (gpointer) "-h");	/* Send hostname to DHCP server */
 		g_ptr_array_add (argv, (gpointer) hostname );
diff --git a/src/dhcp-manager/nm-dhcp-manager.c b/src/dhcp-manager/nm-dhcp-manager.c
index 7088839a..d40eb48d 100644
--- a/src/dhcp-manager/nm-dhcp-manager.c
+++ b/src/dhcp-manager/nm-dhcp-manager.c
@@ -554,13 +554,18 @@ nm_dhcp_manager_get_lease_config (NMDHCPManager *self,
                                   const char *uuid,
                                   gboolean ipv6)
 {
-	NMDHCPManagerPrivate *priv = NM_DHCP_MANAGER_GET_PRIVATE (self);
+	NMDHCPManagerPrivate *priv;
 
+	g_return_val_if_fail (NM_IS_DHCP_MANAGER (self), NULL);
 	g_return_val_if_fail (iface != NULL, NULL);
 	g_return_val_if_fail (uuid != NULL, NULL);
 
+	priv = NM_DHCP_MANAGER_GET_PRIVATE (self);
+
 	if (priv->get_lease_config_func)
 		return priv->get_lease_config_func (iface, uuid, ipv6);
+
+	nm_log_warn (LOGD_DHCP, "Cannot get a DHCP lease config (no usable DHCP client was found!)");
 	return NULL;
 }
 
diff --git a/src/dhcp-manager/tests/Makefile.am b/src/dhcp-manager/tests/Makefile.am
index 8c9d06c1..bf859fe7 100644
--- a/src/dhcp-manager/tests/Makefile.am
+++ b/src/dhcp-manager/tests/Makefile.am
@@ -1,11 +1,12 @@
 if ENABLE_TESTS
 
-INCLUDES = \
+AM_CPPFLAGS = \
 	-I$(top_srcdir)/include \
 	-I$(top_builddir)/include \
 	-I${top_srcdir}/libnm-util \
 	-I${top_builddir}/libnm-util \
-	-I$(top_srcdir)/src/dhcp-manager
+	-I$(top_srcdir)/src/dhcp-manager \
+	$(GLIB_CFLAGS)
 
 noinst_PROGRAMS = test-dhcp-dhclient
 
@@ -15,7 +16,7 @@ test_dhcp_dhclient_SOURCES = \
 	test-dhcp-dhclient.c
 
 test_dhcp_dhclient_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
+	$(AM_CPPFLAGS) \
 	-DTESTDIR="\"$(abs_srcdir)\""
 
 test_dhcp_dhclient_LDADD = \
diff --git a/src/dhcp-manager/tests/Makefile.in b/src/dhcp-manager/tests/Makefile.in
index bb28cb9e..afcee2c0 100644
--- a/src/dhcp-manager/tests/Makefile.in
+++ b/src/dhcp-manager/tests/Makefile.in
@@ -206,6 +206,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -228,6 +229,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -412,12 +414,13 @@ with_dhclient = @with_dhclient@
 with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
-@ENABLE_TESTS_TRUE@INCLUDES = \
+@ENABLE_TESTS_TRUE@AM_CPPFLAGS = \
 @ENABLE_TESTS_TRUE@	-I$(top_srcdir)/include \
 @ENABLE_TESTS_TRUE@	-I$(top_builddir)/include \
 @ENABLE_TESTS_TRUE@	-I${top_srcdir}/libnm-util \
 @ENABLE_TESTS_TRUE@	-I${top_builddir}/libnm-util \
-@ENABLE_TESTS_TRUE@	-I$(top_srcdir)/src/dhcp-manager
+@ENABLE_TESTS_TRUE@	-I$(top_srcdir)/src/dhcp-manager \
+@ENABLE_TESTS_TRUE@	$(GLIB_CFLAGS)
 
 
 ####### policy /etc/hosts test #######
@@ -425,7 +428,7 @@ with_resolvconf = @with_resolvconf@
 @ENABLE_TESTS_TRUE@	test-dhcp-dhclient.c
 
 @ENABLE_TESTS_TRUE@test_dhcp_dhclient_CPPFLAGS = \
-@ENABLE_TESTS_TRUE@	$(GLIB_CFLAGS) \
+@ENABLE_TESTS_TRUE@	$(AM_CPPFLAGS) \
 @ENABLE_TESTS_TRUE@	-DTESTDIR="\"$(abs_srcdir)\""
 
 @ENABLE_TESTS_TRUE@test_dhcp_dhclient_LDADD = \
diff --git a/src/dns-manager/Makefile.am b/src/dns-manager/Makefile.am
index e6c2ff22..4aa20c72 100644
--- a/src/dns-manager/Makefile.am
+++ b/src/dns-manager/Makefile.am
@@ -1,13 +1,20 @@
-INCLUDES = \
+noinst_LTLIBRARIES = libdns-manager.la
+
+libdns_manager_la_CPPFLAGS = \
 	-I${top_srcdir}/src/logging \
 	-I${top_srcdir}/src/posix-signals \
 	-I${top_srcdir}/libnm-util \
 	-I${top_builddir}/libnm-util \
 	-I${top_srcdir}/src \
 	-I${top_srcdir}/include \
-	-I${top_builddir}/include
-
-noinst_LTLIBRARIES = libdns-manager.la
+	-I${top_builddir}/include \
+	$(LIBNL_CFLAGS) \
+	$(DBUS_CFLAGS) \
+	$(GLIB_CFLAGS) \
+	-DLOCALSTATEDIR=\"$(localstatedir)\" \
+	-DSYSCONFDIR=\"$(sysconfdir)\" \
+	-DNMCONFDIR=\"$(nmconfdir)\" \
+	-DNMRUNDIR=\"$(nmrundir)\"
 
 libdns_manager_la_SOURCES = \
 	nm-dns-manager.h \
@@ -19,15 +26,6 @@ libdns_manager_la_SOURCES = \
 	nm-dns-utils.h \
 	nm-dns-utils.c
 
-libdns_manager_la_CPPFLAGS = \
-	$(LIBNL_CFLAGS) \
-	$(DBUS_CFLAGS) \
-	$(GLIB_CFLAGS) \
-	-DLOCALSTATEDIR=\"$(localstatedir)\" \
-	-DSYSCONFDIR=\"$(sysconfdir)\" \
-	-DNMCONFDIR=\"$(nmconfdir)\" \
-	-DNMRUNDIR=\"$(nmrundir)\"
-
 libdns_manager_la_LIBADD = \
 	$(top_builddir)/src/logging/libnm-logging.la \
 	$(top_builddir)/src/posix-signals/libnm-posix-signals.la \
diff --git a/src/dns-manager/Makefile.in b/src/dns-manager/Makefile.in
index 63742c2a..a6116fb5 100644
--- a/src/dns-manager/Makefile.in
+++ b/src/dns-manager/Makefile.in
@@ -209,6 +209,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -231,6 +232,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -415,16 +417,23 @@ with_dhclient = @with_dhclient@
 with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
-INCLUDES = \
+noinst_LTLIBRARIES = libdns-manager.la
+libdns_manager_la_CPPFLAGS = \
 	-I${top_srcdir}/src/logging \
 	-I${top_srcdir}/src/posix-signals \
 	-I${top_srcdir}/libnm-util \
 	-I${top_builddir}/libnm-util \
 	-I${top_srcdir}/src \
 	-I${top_srcdir}/include \
-	-I${top_builddir}/include
+	-I${top_builddir}/include \
+	$(LIBNL_CFLAGS) \
+	$(DBUS_CFLAGS) \
+	$(GLIB_CFLAGS) \
+	-DLOCALSTATEDIR=\"$(localstatedir)\" \
+	-DSYSCONFDIR=\"$(sysconfdir)\" \
+	-DNMCONFDIR=\"$(nmconfdir)\" \
+	-DNMRUNDIR=\"$(nmrundir)\"
 
-noinst_LTLIBRARIES = libdns-manager.la
 libdns_manager_la_SOURCES = \
 	nm-dns-manager.h \
 	nm-dns-manager.c \
@@ -435,15 +444,6 @@ libdns_manager_la_SOURCES = \
 	nm-dns-utils.h \
 	nm-dns-utils.c
 
-libdns_manager_la_CPPFLAGS = \
-	$(LIBNL_CFLAGS) \
-	$(DBUS_CFLAGS) \
-	$(GLIB_CFLAGS) \
-	-DLOCALSTATEDIR=\"$(localstatedir)\" \
-	-DSYSCONFDIR=\"$(sysconfdir)\" \
-	-DNMCONFDIR=\"$(nmconfdir)\" \
-	-DNMRUNDIR=\"$(nmrundir)\"
-
 libdns_manager_la_LIBADD = \
 	$(top_builddir)/src/logging/libnm-logging.la \
 	$(top_builddir)/src/posix-signals/libnm-posix-signals.la \
diff --git a/src/dns-manager/nm-dns-dnsmasq.c b/src/dns-manager/nm-dns-dnsmasq.c
index a41f87b2..1f6e5868 100644
--- a/src/dns-manager/nm-dns-dnsmasq.c
+++ b/src/dns-manager/nm-dns-dnsmasq.c
@@ -53,6 +53,7 @@ static inline const char *
 find_dnsmasq (void)
 {
 	static const char *paths[] = {
+		DNSMASQ_PATH,
 		"/usr/local/sbin/dnsmasq",
 		"/usr/sbin/dnsmasq",
 		"/sbin/dnsmasq",
@@ -61,7 +62,7 @@ find_dnsmasq (void)
 	const char **binary = paths;
 
 	while (*binary != NULL) {
-		if (g_file_test (*binary, G_FILE_TEST_EXISTS))
+		if (**binary && g_file_test (*binary, G_FILE_TEST_EXISTS))
 			return *binary;
 		binary++;
 	}
diff --git a/src/dnsmasq-manager/Makefile.am b/src/dnsmasq-manager/Makefile.am
index 8b7dd683..42706cc2 100644
--- a/src/dnsmasq-manager/Makefile.am
+++ b/src/dnsmasq-manager/Makefile.am
@@ -1,20 +1,18 @@
-INCLUDES = \
+noinst_LTLIBRARIES = libdnsmasq-manager.la
+
+libdnsmasq_manager_la_CPPFLAGS = \
 	-I${top_srcdir}/libnm-util \
 	-I${top_srcdir}/src/logging \
 	-I${top_srcdir}/src/posix-signals \
 	-I${top_srcdir}/src \
-	-I${top_srcdir}/include
-
-noinst_LTLIBRARIES = libdnsmasq-manager.la
+	-I${top_srcdir}/include \
+	$(GLIB_CFLAGS) \
+	-DLOCALSTATEDIR=\"$(localstatedir)\"
 
 libdnsmasq_manager_la_SOURCES = \
 	nm-dnsmasq-manager.h \
 	nm-dnsmasq-manager.c
 
-libdnsmasq_manager_la_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
-	-DLOCALSTATEDIR=\"$(localstatedir)\"
-
 libdnsmasq_manager_la_LIBADD = \
 	$(top_builddir)/src/logging/libnm-logging.la \
 	$(top_builddir)/src/posix-signals/libnm-posix-signals.la \
diff --git a/src/dnsmasq-manager/Makefile.in b/src/dnsmasq-manager/Makefile.in
index 1877f88d..9b20331f 100644
--- a/src/dnsmasq-manager/Makefile.in
+++ b/src/dnsmasq-manager/Makefile.in
@@ -206,6 +206,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -228,6 +229,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -412,22 +414,20 @@ with_dhclient = @with_dhclient@
 with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
-INCLUDES = \
+noinst_LTLIBRARIES = libdnsmasq-manager.la
+libdnsmasq_manager_la_CPPFLAGS = \
 	-I${top_srcdir}/libnm-util \
 	-I${top_srcdir}/src/logging \
 	-I${top_srcdir}/src/posix-signals \
 	-I${top_srcdir}/src \
-	-I${top_srcdir}/include
+	-I${top_srcdir}/include \
+	$(GLIB_CFLAGS) \
+	-DLOCALSTATEDIR=\"$(localstatedir)\"
 
-noinst_LTLIBRARIES = libdnsmasq-manager.la
 libdnsmasq_manager_la_SOURCES = \
 	nm-dnsmasq-manager.h \
 	nm-dnsmasq-manager.c
 
-libdnsmasq_manager_la_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
-	-DLOCALSTATEDIR=\"$(localstatedir)\"
-
 libdnsmasq_manager_la_LIBADD = \
 	$(top_builddir)/src/logging/libnm-logging.la \
 	$(top_builddir)/src/posix-signals/libnm-posix-signals.la \
diff --git a/src/dnsmasq-manager/nm-dnsmasq-manager.c b/src/dnsmasq-manager/nm-dnsmasq-manager.c
index f708f6f6..083fb533 100644
--- a/src/dnsmasq-manager/nm-dnsmasq-manager.c
+++ b/src/dnsmasq-manager/nm-dnsmasq-manager.c
@@ -171,16 +171,16 @@ static inline const char *
 nm_find_dnsmasq (void)
 {
 	static const char *dnsmasq_binary_paths[] = {
+		DNSMASQ_PATH,
 		"/usr/local/sbin/dnsmasq",
 		"/usr/sbin/dnsmasq",
 		"/sbin/dnsmasq",
 		NULL
 	};
-
 	const char **dnsmasq_binary = dnsmasq_binary_paths;
 
 	while (*dnsmasq_binary != NULL) {
-		if (g_file_test (*dnsmasq_binary, G_FILE_TEST_EXISTS))
+		if (**dnsmasq_binary && g_file_test (*dnsmasq_binary, G_FILE_TEST_EXISTS))
 			break;
 		dnsmasq_binary++;
 	}
diff --git a/src/firewall-manager/Makefile.am b/src/firewall-manager/Makefile.am
index 2cfe32d0..15bde51a 100644
--- a/src/firewall-manager/Makefile.am
+++ b/src/firewall-manager/Makefile.am
@@ -1,21 +1,19 @@
-INCLUDES = \
-	-I${top_srcdir}/src \
-	-I${top_srcdir}/src/logging \
-	-I${top_srcdir}/include \
-	-I${top_srcdir}/libnm-util
-
 noinst_LTLIBRARIES = libfirewall-manager.la
 
-libfirewall_manager_la_SOURCES = \
-	nm-firewall-manager.h \
-	nm-firewall-manager.c
-
 libfirewall_manager_la_CPPFLAGS = \
+	-I${top_srcdir}/src \
+	-I${top_srcdir}/src/logging \
+	-I${top_srcdir}/include \
+	-I${top_srcdir}/libnm-util \
 	$(DBUS_CFLAGS) \
 	$(GLIB_CFLAGS) \
 	-DNM_PKGDATADIR=\"$(pkgdatadir)\" \
 	-DNM_LOCALSTATEDIR=\"$(localstatedir)\"
 
+libfirewall_manager_la_SOURCES = \
+	nm-firewall-manager.h \
+	nm-firewall-manager.c
+
 libfirewall_manager_la_LIBADD = \
 	$(top_builddir)/src/logging/libnm-logging.la \
 	$(DBUS_LIBS) \
diff --git a/src/firewall-manager/Makefile.in b/src/firewall-manager/Makefile.in
index 6820a3ac..690f0b3d 100644
--- a/src/firewall-manager/Makefile.in
+++ b/src/firewall-manager/Makefile.in
@@ -205,6 +205,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -227,6 +228,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -411,23 +413,21 @@ with_dhclient = @with_dhclient@
 with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
-INCLUDES = \
+noinst_LTLIBRARIES = libfirewall-manager.la
+libfirewall_manager_la_CPPFLAGS = \
 	-I${top_srcdir}/src \
 	-I${top_srcdir}/src/logging \
 	-I${top_srcdir}/include \
-	-I${top_srcdir}/libnm-util
-
-noinst_LTLIBRARIES = libfirewall-manager.la
-libfirewall_manager_la_SOURCES = \
-	nm-firewall-manager.h \
-	nm-firewall-manager.c
-
-libfirewall_manager_la_CPPFLAGS = \
+	-I${top_srcdir}/libnm-util \
 	$(DBUS_CFLAGS) \
 	$(GLIB_CFLAGS) \
 	-DNM_PKGDATADIR=\"$(pkgdatadir)\" \
 	-DNM_LOCALSTATEDIR=\"$(localstatedir)\"
 
+libfirewall_manager_la_SOURCES = \
+	nm-firewall-manager.h \
+	nm-firewall-manager.c
+
 libfirewall_manager_la_LIBADD = \
 	$(top_builddir)/src/logging/libnm-logging.la \
 	$(DBUS_LIBS) \
diff --git a/src/firewall-manager/nm-firewall-manager.c b/src/firewall-manager/nm-firewall-manager.c
index c19be5e8..cdb2f3fa 100644
--- a/src/firewall-manager/nm-firewall-manager.c
+++ b/src/firewall-manager/nm-firewall-manager.c
@@ -82,8 +82,13 @@ add_or_change_cb (DBusGProxy *proxy, DBusGProxyCall *call_id, gpointer user_data
 	                            G_TYPE_STRING, &zone,
 	                            G_TYPE_INVALID)) {
 		g_assert (error);
-		nm_log_warn (LOGD_FIREWALL, "(%s) firewall zone add/change failed: (%d) %s",
-		             info->iface, error->code, error->message);
+		if (g_strcmp0 (error->message, "ZONE_ALREADY_SET") != 0) {
+			nm_log_warn (LOGD_FIREWALL, "(%s) firewall zone add/change failed: (%d) %s",
+			             info->iface, error->code, error->message);
+		} else {
+			nm_log_dbg (LOGD_FIREWALL, "(%s) firewall zone add/change failed: (%d) %s",
+			            info->iface, error->code, error->message);
+		}
 	}
 
 	info->callback (error, info->user_data);
@@ -114,7 +119,8 @@ nm_firewall_manager_add_or_change_zone (NMFirewallManager *self,
 	info->callback = callback;
 	info->user_data = user_data;
 
-	nm_log_dbg (LOGD_FIREWALL, "(%s) firewall zone %s -> %s", iface, add ? "add" : "change", zone);
+	nm_log_dbg (LOGD_FIREWALL, "(%s) firewall zone %s -> %s%s%s", iface, add ? "add" : "change",
+	                           zone?"\"":"", zone ? zone : "default", zone?"\"":"");
 	return dbus_g_proxy_begin_call_with_timeout (priv->proxy,
 	                                             add ? "addInterface" : "changeZone",
 	                                             add_or_change_cb,
@@ -137,8 +143,11 @@ remove_cb (DBusGProxy *proxy, DBusGProxyCall *call_id, gpointer user_data)
 	                            G_TYPE_STRING, &zone,
 	                            G_TYPE_INVALID)) {
 		g_assert (error);
-		nm_log_warn (LOGD_FIREWALL, "(%s) firewall zone remove failed: (%d) %s",
-		             info->iface, error->code, error->message);
+		/* ignore UNKNOWN_INTERFACE errors */
+		if (error->message && !strstr (error->message, "UNKNOWN_INTERFACE")) {
+			nm_log_warn (LOGD_FIREWALL, "(%s) firewall zone remove failed: (%d) %s",
+			             info->iface, error->code, error->message);
+		}
 	}
 
 	g_free (zone);
diff --git a/src/generated/Makefile.am b/src/generated/Makefile.am
index 307766e1..b313e454 100644
--- a/src/generated/Makefile.am
+++ b/src/generated/Makefile.am
@@ -50,7 +50,7 @@ GLIB_MKENUMS_C_FLAGS = --identifier-prefix NM
 GLIB_GENERATED += nm-marshal.h nm-marshal.c
 nm_marshal_sources = $(nm_daemon_sources)
 
-INCLUDES = \
+libnm_generated_la_CPPFLAGS = \
 	-I${top_srcdir}/include \
 	-I${top_builddir}/include \
 	-I${top_srcdir}/src \
@@ -67,13 +67,7 @@ INCLUDES = \
 	-I$(top_srcdir)/src/firewall-manager \
 	-I$(top_srcdir)/src/settings \
 	-I$(top_srcdir)/src/wifi \
-	-I$(top_srcdir)/libnm-util
-
-if WITH_WIMAX
-INCLUDES += -I$(top_srcdir)/src/wimax
-endif
-
-libnm_generated_la_CPPFLAGS = \
+	-I$(top_srcdir)/libnm-util \
 	$(DBUS_CFLAGS) \
 	$(GLIB_CFLAGS) \
 	$(GUDEV_CFLAGS) \
@@ -82,8 +76,12 @@ libnm_generated_la_CPPFLAGS = \
 	$(SYSTEMD_LOGIN_CFLAGS) \
 	$(IWMX_SDK_CFLAGS)
 
+if WITH_WIMAX
+libnm_generated_la_CPPFLAGS += -I$(top_srcdir)/src/wimax
+endif
+
 if WITH_MODEM_MANAGER_1
-	libnm_generated_la_CPPFLAGS += $(MM_GLIB_CFLAGS)
+libnm_generated_la_CPPFLAGS += $(MM_GLIB_CFLAGS)
 endif
 
 libnm_generated_la_LIBADD = \
diff --git a/src/generated/Makefile.in b/src/generated/Makefile.in
index ba64a615..350bf7f7 100644
--- a/src/generated/Makefile.in
+++ b/src/generated/Makefile.in
@@ -80,6 +80,7 @@ build_triplet = @build@
 host_triplet = @host@
 @WITH_WIMAX_TRUE@am__append_1 = $(top_srcdir)/src/wimax/*.[ch]
 @WITH_WIMAX_TRUE@am__append_2 = -I$(top_srcdir)/src/wimax
+@WITH_MODEM_MANAGER_1_TRUE@am__append_3 = $(MM_GLIB_CFLAGS)
 subdir = src/generated
 DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
 	$(top_srcdir)/build-aux/depcomp
@@ -205,6 +206,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -227,6 +229,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -451,9 +454,9 @@ nm_enum_types_sources = $(nm_daemon_sources)
 GLIB_MKENUMS_H_FLAGS = --identifier-prefix NM
 GLIB_MKENUMS_C_FLAGS = --identifier-prefix NM
 nm_marshal_sources = $(nm_daemon_sources)
-INCLUDES = -I${top_srcdir}/include -I${top_builddir}/include \
-	-I${top_srcdir}/src -I${top_srcdir}/src/logging \
-	-I${top_srcdir}/src/dns-manager \
+libnm_generated_la_CPPFLAGS = -I${top_srcdir}/include \
+	-I${top_builddir}/include -I${top_srcdir}/src \
+	-I${top_srcdir}/src/logging -I${top_srcdir}/src/dns-manager \
 	-I${top_srcdir}/src/vpn-manager \
 	-I${top_srcdir}/src/dhcp-manager \
 	-I${top_srcdir}/src/ip6-manager \
@@ -464,16 +467,10 @@ INCLUDES = -I${top_srcdir}/include -I${top_builddir}/include \
 	-I$(top_srcdir)/src/bluez-manager \
 	-I$(top_srcdir)/src/firewall-manager \
 	-I$(top_srcdir)/src/settings -I$(top_srcdir)/src/wifi \
-	-I$(top_srcdir)/libnm-util $(am__append_2)
-libnm_generated_la_CPPFLAGS = \
-	$(DBUS_CFLAGS) \
-	$(GLIB_CFLAGS) \
-	$(GUDEV_CFLAGS) \
-	$(LIBNL_CFLAGS) \
-	$(POLKIT_CFLAGS) \
-	$(SYSTEMD_LOGIN_CFLAGS) \
-	$(IWMX_SDK_CFLAGS)
-
+	-I$(top_srcdir)/libnm-util $(DBUS_CFLAGS) $(GLIB_CFLAGS) \
+	$(GUDEV_CFLAGS) $(LIBNL_CFLAGS) $(POLKIT_CFLAGS) \
+	$(SYSTEMD_LOGIN_CFLAGS) $(IWMX_SDK_CFLAGS) $(am__append_2) \
+	$(am__append_3)
 libnm_generated_la_LIBADD = \
 	$(GLIB_LIBS)
 
@@ -786,8 +783,6 @@ uninstall-am:
 
 include $(GLIB_MAKEFILE)
 
-@WITH_MODEM_MANAGER_1_TRUE@	libnm_generated_la_CPPFLAGS += $(MM_GLIB_CFLAGS)
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/src/generated/nm-enum-types.c b/src/generated/nm-enum-types.c
index 78fdee46..9bb95806 100644
--- a/src/generated/nm-enum-types.c
+++ b/src/generated/nm-enum-types.c
@@ -5,52 +5,52 @@
 
 #include "nm-enum-types.h"
 
-#include "nm-manager.h" 
-#include "nm-types.h" 
-#include "nm-system.h" 
-#include "nm-hostname-provider.h" 
-#include "nm-manager-auth.h" 
-#include "nm-netlink-utils.h" 
-#include "nm-netlink-monitor.h" 
-#include "nm-connectivity.h" 
-#include "nm-device-vlan.h" 
-#include "nm-ip4-config.h" 
-#include "nm-sleep-monitor.h" 
-#include "nm-device.h" 
-#include "nm-device-olpc-mesh.h" 
-#include "nm-device-bridge.h" 
-#include "nm-device-private.h" 
-#include "nm-dhcp6-config.h" 
-#include "nm-ip6-config.h" 
-#include "nm-device-bond.h" 
-#include "nm-wifi-ap-utils.h" 
-#include "nm-device-adsl.h" 
-#include "nm-policy.h" 
-#include "nm-device-modem.h" 
-#include "nm-activation-request.h" 
-#include "nm-policy-hostname.h" 
-#include "nm-properties-changed-signal.h" 
-#include "nm-wifi-ap.h" 
-#include "nm-config.h" 
-#include "nm-device-wired.h" 
-#include "nm-rfkill.h" 
-#include "NetworkManagerUtils.h" 
-#include "nm-device-factory.h" 
 #include "nm-active-connection.h" 
+#include "nm-wifi-ap.h" 
 #include "nm-device-bt.h" 
 #include "nm-device-infiniband.h" 
-#include "nm-device-wifi.h" 
-#include "nm-dbus-manager.h" 
-#include "nm-dhcp4-config.h" 
+#include "nm-device-bond.h" 
+#include "nm-device-wired.h" 
+#include "nm-dhcp6-config.h" 
 #include "nm-session-utils.h" 
 #include "nm-netlink-compat.h" 
 #include "nm-session-monitor.h" 
 #include "nm-connection-provider.h" 
 #include "nm-device-ethernet.h" 
 #include "nm-call-store.h" 
+#include "nm-config.h" 
 #include "nm-policy-hosts.h" 
+#include "nm-rfkill.h" 
 #include "nm-dispatcher.h" 
+#include "nm-ip4-config.h" 
+#include "nm-manager.h" 
+#include "nm-device-modem.h" 
+#include "nm-activation-request.h" 
+#include "nm-wifi-ap-utils.h" 
+#include "nm-dbus-manager.h" 
+#include "nm-policy-hostname.h" 
+#include "nm-device.h" 
+#include "nm-types.h" 
+#include "nm-ip6-config.h" 
+#include "nm-system.h" 
+#include "nm-policy.h" 
+#include "nm-manager-auth.h" 
+#include "nm-device-bridge.h" 
+#include "nm-device-wifi.h" 
+#include "nm-device-private.h" 
+#include "nm-netlink-utils.h" 
+#include "nm-dhcp4-config.h" 
 #include "nm-udev-manager.h" 
+#include "nm-connectivity.h" 
+#include "nm-device-vlan.h" 
+#include "nm-netlink-monitor.h" 
+#include "nm-device-olpc-mesh.h" 
+#include "nm-hostname-provider.h" 
+#include "nm-sleep-monitor.h" 
+#include "nm-device-factory.h" 
+#include "NetworkManagerUtils.h" 
+#include "nm-device-adsl.h" 
+#include "nm-properties-changed-signal.h" 
 #include "nm-logging.h" 
 #include "nm-dns-utils.h" 
 #include "nm-dns-plugin.h" 
@@ -86,10 +86,10 @@
 #include "nm-bluez4-adapter.h" 
 #include "nm-firewall-manager.h" 
 #include "nm-settings-connection.h" 
+#include "nm-settings.h" 
 #include "nm-default-wired-connection.h" 
 #include "nm-system-config-interface.h" 
 #include "nm-settings-utils.h" 
-#include "nm-settings.h" 
 #include "nm-settings-error.h" 
 #include "nm-agent-manager.h" 
 #include "nm-inotify-helper.h" 
@@ -101,464 +101,464 @@
 #include "nm-wimax-nsp.h"
 
 GType
-nm_manager_error_get_type (void)
+nm_bt_error_get_type (void)
 {
   static volatile gsize g_define_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_define_type_id__volatile))
     {
       static const GEnumValue values[] = {
-        { NM_MANAGER_ERROR_UNKNOWN_CONNECTION, "NM_MANAGER_ERROR_UNKNOWN_CONNECTION", "UnknownConnection" },
-        { NM_MANAGER_ERROR_UNKNOWN_DEVICE, "NM_MANAGER_ERROR_UNKNOWN_DEVICE", "UnknownDevice" },
-        { NM_MANAGER_ERROR_UNMANAGED_DEVICE, "NM_MANAGER_ERROR_UNMANAGED_DEVICE", "UnmanagedDevice" },
-        { NM_MANAGER_ERROR_SYSTEM_CONNECTION, "NM_MANAGER_ERROR_SYSTEM_CONNECTION", "SystemConnection" },
-        { NM_MANAGER_ERROR_PERMISSION_DENIED, "NM_MANAGER_ERROR_PERMISSION_DENIED", "PermissionDenied" },
-        { NM_MANAGER_ERROR_CONNECTION_NOT_ACTIVE, "NM_MANAGER_ERROR_CONNECTION_NOT_ACTIVE", "ConnectionNotActive" },
-        { NM_MANAGER_ERROR_ALREADY_ASLEEP_OR_AWAKE, "NM_MANAGER_ERROR_ALREADY_ASLEEP_OR_AWAKE", "AlreadyAsleepOrAwake" },
-        { NM_MANAGER_ERROR_ALREADY_ENABLED_OR_DISABLED, "NM_MANAGER_ERROR_ALREADY_ENABLED_OR_DISABLED", "AlreadyEnabledOrDisabled" },
-        { NM_MANAGER_ERROR_UNSUPPORTED_CONNECTION_TYPE, "NM_MANAGER_ERROR_UNSUPPORTED_CONNECTION_TYPE", "UnsupportedConnectionType" },
-        { NM_MANAGER_ERROR_DEPENDENCY_FAILED, "NM_MANAGER_ERROR_DEPENDENCY_FAILED", "DependencyFailed" },
-        { NM_MANAGER_ERROR_AUTOCONNECT_NOT_ALLOWED, "NM_MANAGER_ERROR_AUTOCONNECT_NOT_ALLOWED", "AutoconnectNotAllowed" },
+        { NM_BT_ERROR_CONNECTION_NOT_BT, "NM_BT_ERROR_CONNECTION_NOT_BT", "ConnectionNotBt" },
+        { NM_BT_ERROR_CONNECTION_INVALID, "NM_BT_ERROR_CONNECTION_INVALID", "ConnectionInvalid" },
+        { NM_BT_ERROR_CONNECTION_INCOMPATIBLE, "NM_BT_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" },
         { 0, NULL, NULL }
       };
       GType g_define_type_id =
-        g_enum_register_static (g_intern_static_string ("NMManagerError"), values);
+        g_enum_register_static (g_intern_static_string ("NMBtError"), values);
       g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
     }
 
   return g_define_type_id__volatile;
 }
 GType
-nm_auth_call_result_get_type (void)
+nm_infiniband_error_get_type (void)
 {
   static volatile gsize g_define_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_define_type_id__volatile))
     {
       static const GEnumValue values[] = {
-        { NM_AUTH_CALL_RESULT_UNKNOWN, "NM_AUTH_CALL_RESULT_UNKNOWN", "unknown" },
-        { NM_AUTH_CALL_RESULT_YES, "NM_AUTH_CALL_RESULT_YES", "yes" },
-        { NM_AUTH_CALL_RESULT_AUTH, "NM_AUTH_CALL_RESULT_AUTH", "auth" },
-        { NM_AUTH_CALL_RESULT_NO, "NM_AUTH_CALL_RESULT_NO", "no" },
+        { NM_INFINIBAND_ERROR_CONNECTION_NOT_INFINIBAND, "NM_INFINIBAND_ERROR_CONNECTION_NOT_INFINIBAND", "ConnectionNotInfiniband" },
+        { NM_INFINIBAND_ERROR_CONNECTION_INVALID, "NM_INFINIBAND_ERROR_CONNECTION_INVALID", "ConnectionInvalid" },
+        { NM_INFINIBAND_ERROR_CONNECTION_INCOMPATIBLE, "NM_INFINIBAND_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" },
         { 0, NULL, NULL }
       };
       GType g_define_type_id =
-        g_enum_register_static (g_intern_static_string ("NMAuthCallResult"), values);
+        g_enum_register_static (g_intern_static_string ("NMInfinibandError"), values);
       g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
     }
 
   return g_define_type_id__volatile;
 }
 GType
-nm_nm_nl_prop_get_type (void)
+nm_bond_error_get_type (void)
 {
   static volatile gsize g_define_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_define_type_id__volatile))
     {
       static const GEnumValue values[] = {
-        { NMNL_PROP_INVALID, "NMNL_PROP_INVALID", "invalid" },
-        { NMNL_PROP_PROT, "NMNL_PROP_PROT", "prot" },
-        { NMNL_PROP_SCOPE, "NMNL_PROP_SCOPE", "scope" },
-        { NMNL_PROP_TABLE, "NMNL_PROP_TABLE", "table" },
-        { NMNL_PROP_PRIO, "NMNL_PROP_PRIO", "prio" },
+        { NM_BOND_ERROR_CONNECTION_NOT_BOND, "NM_BOND_ERROR_CONNECTION_NOT_BOND", "ConnectionNotBond" },
+        { NM_BOND_ERROR_CONNECTION_INVALID, "NM_BOND_ERROR_CONNECTION_INVALID", "ConnectionInvalid" },
+        { NM_BOND_ERROR_CONNECTION_INCOMPATIBLE, "NM_BOND_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" },
         { 0, NULL, NULL }
       };
       GType g_define_type_id =
-        g_enum_register_static (g_intern_static_string ("NmNlProp"), values);
+        g_enum_register_static (g_intern_static_string ("NMBondError"), values);
       g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
     }
 
   return g_define_type_id__volatile;
 }
 GType
-nm_netlink_monitor_error_get_type (void)
+nm_session_monitor_error_get_type (void)
 {
   static volatile gsize g_define_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_define_type_id__volatile))
     {
       static const GEnumValue values[] = {
-        { NM_NETLINK_MONITOR_ERROR_GENERIC, "NM_NETLINK_MONITOR_ERROR_GENERIC", "generic" },
-        { NM_NETLINK_MONITOR_ERROR_NETLINK_ALLOC_HANDLE, "NM_NETLINK_MONITOR_ERROR_NETLINK_ALLOC_HANDLE", "netlink-alloc-handle" },
-        { NM_NETLINK_MONITOR_ERROR_NETLINK_CONNECT, "NM_NETLINK_MONITOR_ERROR_NETLINK_CONNECT", "netlink-connect" },
-        { NM_NETLINK_MONITOR_ERROR_NETLINK_JOIN_GROUP, "NM_NETLINK_MONITOR_ERROR_NETLINK_JOIN_GROUP", "netlink-join-group" },
-        { NM_NETLINK_MONITOR_ERROR_NETLINK_ALLOC_LINK_CACHE, "NM_NETLINK_MONITOR_ERROR_NETLINK_ALLOC_LINK_CACHE", "netlink-alloc-link-cache" },
-        { NM_NETLINK_MONITOR_ERROR_PROCESSING_MESSAGE, "NM_NETLINK_MONITOR_ERROR_PROCESSING_MESSAGE", "processing-message" },
-        { NM_NETLINK_MONITOR_ERROR_BAD_ALLOC, "NM_NETLINK_MONITOR_ERROR_BAD_ALLOC", "bad-alloc" },
-        { NM_NETLINK_MONITOR_ERROR_WAITING_FOR_SOCKET_DATA, "NM_NETLINK_MONITOR_ERROR_WAITING_FOR_SOCKET_DATA", "waiting-for-socket-data" },
-        { NM_NETLINK_MONITOR_ERROR_LINK_CACHE_UPDATE, "NM_NETLINK_MONITOR_ERROR_LINK_CACHE_UPDATE", "link-cache-update" },
+        { NM_SESSION_MONITOR_ERROR_IO_ERROR, "NM_SESSION_MONITOR_ERROR_IO_ERROR", "IOError" },
+        { NM_SESSION_MONITOR_ERROR_MALFORMED_DATABASE, "NM_SESSION_MONITOR_ERROR_MALFORMED_DATABASE", "MalformedDatabase" },
+        { NM_SESSION_MONITOR_ERROR_UNKNOWN_USER, "NM_SESSION_MONITOR_ERROR_UNKNOWN_USER", "UnknownUser" },
+        { NM_SESSION_MONITOR_ERROR_NO_DATABASE, "NM_SESSION_MONITOR_ERROR_NO_DATABASE", "NoDatabase" },
         { 0, NULL, NULL }
       };
       GType g_define_type_id =
-        g_enum_register_static (g_intern_static_string ("NMNetlinkMonitorError"), values);
+        g_enum_register_static (g_intern_static_string ("NMSessionMonitorError"), values);
       g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
     }
 
   return g_define_type_id__volatile;
 }
 GType
-nm_vlan_error_get_type (void)
+nm_ethernet_error_get_type (void)
 {
   static volatile gsize g_define_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_define_type_id__volatile))
     {
       static const GEnumValue values[] = {
-        { NM_VLAN_ERROR_CONNECTION_NOT_VLAN, "NM_VLAN_ERROR_CONNECTION_NOT_VLAN", "ConnectionNotVlan" },
-        { NM_VLAN_ERROR_CONNECTION_INVALID, "NM_VLAN_ERROR_CONNECTION_INVALID", "ConnectionInvalid" },
-        { NM_VLAN_ERROR_CONNECTION_INCOMPATIBLE, "NM_VLAN_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" },
+        { NM_ETHERNET_ERROR_CONNECTION_NOT_WIRED, "NM_ETHERNET_ERROR_CONNECTION_NOT_WIRED", "ConnectionNotWired" },
+        { NM_ETHERNET_ERROR_CONNECTION_INVALID, "NM_ETHERNET_ERROR_CONNECTION_INVALID", "ConnectionInvalid" },
+        { NM_ETHERNET_ERROR_CONNECTION_INCOMPATIBLE, "NM_ETHERNET_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" },
         { 0, NULL, NULL }
       };
       GType g_define_type_id =
-        g_enum_register_static (g_intern_static_string ("NMVlanError"), values);
+        g_enum_register_static (g_intern_static_string ("NMEthernetError"), values);
       g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
     }
 
   return g_define_type_id__volatile;
 }
 GType
-nm_ip4_config_compare_flags_get_type (void)
+nm_config_error_get_type (void)
 {
   static volatile gsize g_define_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_define_type_id__volatile))
     {
       static const GEnumValue values[] = {
-        { NM_IP4_COMPARE_FLAG_NONE, "NM_IP4_COMPARE_FLAG_NONE", "none" },
-        { NM_IP4_COMPARE_FLAG_ADDRESSES, "NM_IP4_COMPARE_FLAG_ADDRESSES", "addresses" },
-        { NM_IP4_COMPARE_FLAG_PTP_ADDRESS, "NM_IP4_COMPARE_FLAG_PTP_ADDRESS", "ptp-address" },
-        { NM_IP4_COMPARE_FLAG_NAMESERVERS, "NM_IP4_COMPARE_FLAG_NAMESERVERS", "nameservers" },
-        { NM_IP4_COMPARE_FLAG_ROUTES, "NM_IP4_COMPARE_FLAG_ROUTES", "routes" },
-        { NM_IP4_COMPARE_FLAG_DOMAINS, "NM_IP4_COMPARE_FLAG_DOMAINS", "domains" },
-        { NM_IP4_COMPARE_FLAG_SEARCHES, "NM_IP4_COMPARE_FLAG_SEARCHES", "searches" },
-        { NM_IP4_COMPARE_FLAG_MTU, "NM_IP4_COMPARE_FLAG_MTU", "mtu" },
-        { NM_IP4_COMPARE_FLAG_MSS, "NM_IP4_COMPARE_FLAG_MSS", "mss" },
-        { NM_IP4_COMPARE_FLAG_WINS_SERVERS, "NM_IP4_COMPARE_FLAG_WINS_SERVERS", "wins-servers" },
-        { NM_IP4_COMPARE_FLAG_NIS_SERVERS, "NM_IP4_COMPARE_FLAG_NIS_SERVERS", "nis-servers" },
-        { NM_IP4_COMPARE_FLAG_NIS_DOMAIN, "NM_IP4_COMPARE_FLAG_NIS_DOMAIN", "nis-domain" },
-        { NM_IP4_COMPARE_FLAG_ALL, "NM_IP4_COMPARE_FLAG_ALL", "all" },
+        { NM_CONFIG_ERROR_NO_MEMORY, "NM_CONFIG_ERROR_NO_MEMORY", "NoMemory" },
         { 0, NULL, NULL }
       };
       GType g_define_type_id =
-        g_enum_register_static (g_intern_static_string ("NMIP4ConfigCompareFlags"), values);
+        g_enum_register_static (g_intern_static_string ("NMConfigError"), values);
       g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
     }
 
   return g_define_type_id__volatile;
 }
 GType
-nm_device_error_get_type (void)
+nm_rf_kill_state_get_type (void)
 {
   static volatile gsize g_define_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_define_type_id__volatile))
     {
       static const GEnumValue values[] = {
-        { NM_DEVICE_ERROR_CONNECTION_ACTIVATING, "NM_DEVICE_ERROR_CONNECTION_ACTIVATING", "ConnectionActivating" },
-        { NM_DEVICE_ERROR_CONNECTION_INVALID, "NM_DEVICE_ERROR_CONNECTION_INVALID", "ConnectionInvalid" },
-        { NM_DEVICE_ERROR_NOT_ACTIVE, "NM_DEVICE_ERROR_NOT_ACTIVE", "NotActive" },
+        { RFKILL_UNBLOCKED, "RFKILL_UNBLOCKED", "unblocked" },
+        { RFKILL_SOFT_BLOCKED, "RFKILL_SOFT_BLOCKED", "soft-blocked" },
+        { RFKILL_HARD_BLOCKED, "RFKILL_HARD_BLOCKED", "hard-blocked" },
         { 0, NULL, NULL }
       };
       GType g_define_type_id =
-        g_enum_register_static (g_intern_static_string ("NMDeviceError"), values);
+        g_enum_register_static (g_intern_static_string ("RfKillState"), values);
       g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
     }
 
   return g_define_type_id__volatile;
 }
 GType
-nm_olpc_mesh_error_get_type (void)
+nm_rf_kill_type_get_type (void)
 {
   static volatile gsize g_define_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_define_type_id__volatile))
     {
       static const GEnumValue values[] = {
-        { NM_OLPC_MESH_ERROR_CONNECTION_NOT_MESH, "NM_OLPC_MESH_ERROR_CONNECTION_NOT_MESH", "ConnectionNotMesh" },
-        { NM_OLPC_MESH_ERROR_CONNECTION_INVALID, "NM_OLPC_MESH_ERROR_CONNECTION_INVALID", "ConnectionInvalid" },
-        { NM_OLPC_MESH_ERROR_CONNECTION_INCOMPATIBLE, "NM_OLPC_MESH_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" },
+        { RFKILL_TYPE_WLAN, "RFKILL_TYPE_WLAN", "wlan" },
+        { RFKILL_TYPE_WWAN, "RFKILL_TYPE_WWAN", "wwan" },
+        { RFKILL_TYPE_WIMAX, "RFKILL_TYPE_WIMAX", "wimax" },
+        { RFKILL_TYPE_UNKNOWN, "RFKILL_TYPE_UNKNOWN", "unknown" },
+        { RFKILL_TYPE_MAX, "RFKILL_TYPE_MAX", "max" },
         { 0, NULL, NULL }
       };
       GType g_define_type_id =
-        g_enum_register_static (g_intern_static_string ("NMOlpcMeshError"), values);
+        g_enum_register_static (g_intern_static_string ("RfKillType"), values);
       g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
     }
 
   return g_define_type_id__volatile;
 }
 GType
-nm_bridge_error_get_type (void)
+nm_dispatcher_action_get_type (void)
 {
   static volatile gsize g_define_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_define_type_id__volatile))
     {
       static const GEnumValue values[] = {
-        { NM_BRIDGE_ERROR_CONNECTION_NOT_BRIDGE, "NM_BRIDGE_ERROR_CONNECTION_NOT_BRIDGE", "ConnectionNotBridge" },
-        { NM_BRIDGE_ERROR_CONNECTION_INVALID, "NM_BRIDGE_ERROR_CONNECTION_INVALID", "ConnectionInvalid" },
-        { NM_BRIDGE_ERROR_CONNECTION_INCOMPATIBLE, "NM_BRIDGE_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" },
+        { DISPATCHER_ACTION_HOSTNAME, "DISPATCHER_ACTION_HOSTNAME", "hostname" },
+        { DISPATCHER_ACTION_UP, "DISPATCHER_ACTION_UP", "up" },
+        { DISPATCHER_ACTION_PRE_DOWN, "DISPATCHER_ACTION_PRE_DOWN", "pre-down" },
+        { DISPATCHER_ACTION_DOWN, "DISPATCHER_ACTION_DOWN", "down" },
+        { DISPATCHER_ACTION_VPN_UP, "DISPATCHER_ACTION_VPN_UP", "vpn-up" },
+        { DISPATCHER_ACTION_VPN_PRE_DOWN, "DISPATCHER_ACTION_VPN_PRE_DOWN", "vpn-pre-down" },
+        { DISPATCHER_ACTION_VPN_DOWN, "DISPATCHER_ACTION_VPN_DOWN", "vpn-down" },
+        { DISPATCHER_ACTION_DHCP4_CHANGE, "DISPATCHER_ACTION_DHCP4_CHANGE", "dhcp4-change" },
+        { DISPATCHER_ACTION_DHCP6_CHANGE, "DISPATCHER_ACTION_DHCP6_CHANGE", "dhcp6-change" },
         { 0, NULL, NULL }
       };
       GType g_define_type_id =
-        g_enum_register_static (g_intern_static_string ("NMBridgeError"), values);
+        g_enum_register_static (g_intern_static_string ("DispatcherAction"), values);
       g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
     }
 
   return g_define_type_id__volatile;
 }
 GType
-nm_ip6_config_compare_flags_get_type (void)
+nm_ip4_config_compare_flags_get_type (void)
 {
   static volatile gsize g_define_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_define_type_id__volatile))
     {
       static const GEnumValue values[] = {
-        { NM_IP6_COMPARE_FLAG_NONE, "NM_IP6_COMPARE_FLAG_NONE", "none" },
-        { NM_IP6_COMPARE_FLAG_ADDRESSES, "NM_IP6_COMPARE_FLAG_ADDRESSES", "addresses" },
-        { NM_IP6_COMPARE_FLAG_PTP_ADDRESS, "NM_IP6_COMPARE_FLAG_PTP_ADDRESS", "ptp-address" },
-        { NM_IP6_COMPARE_FLAG_NAMESERVERS, "NM_IP6_COMPARE_FLAG_NAMESERVERS", "nameservers" },
-        { NM_IP6_COMPARE_FLAG_ROUTES, "NM_IP6_COMPARE_FLAG_ROUTES", "routes" },
-        { NM_IP6_COMPARE_FLAG_DOMAINS, "NM_IP6_COMPARE_FLAG_DOMAINS", "domains" },
-        { NM_IP6_COMPARE_FLAG_SEARCHES, "NM_IP6_COMPARE_FLAG_SEARCHES", "searches" },
-        { NM_IP6_COMPARE_FLAG_MSS, "NM_IP6_COMPARE_FLAG_MSS", "mss" },
-        { NM_IP6_COMPARE_FLAG_ALL, "NM_IP6_COMPARE_FLAG_ALL", "all" },
+        { NM_IP4_COMPARE_FLAG_NONE, "NM_IP4_COMPARE_FLAG_NONE", "none" },
+        { NM_IP4_COMPARE_FLAG_ADDRESSES, "NM_IP4_COMPARE_FLAG_ADDRESSES", "addresses" },
+        { NM_IP4_COMPARE_FLAG_PTP_ADDRESS, "NM_IP4_COMPARE_FLAG_PTP_ADDRESS", "ptp-address" },
+        { NM_IP4_COMPARE_FLAG_NAMESERVERS, "NM_IP4_COMPARE_FLAG_NAMESERVERS", "nameservers" },
+        { NM_IP4_COMPARE_FLAG_ROUTES, "NM_IP4_COMPARE_FLAG_ROUTES", "routes" },
+        { NM_IP4_COMPARE_FLAG_DOMAINS, "NM_IP4_COMPARE_FLAG_DOMAINS", "domains" },
+        { NM_IP4_COMPARE_FLAG_SEARCHES, "NM_IP4_COMPARE_FLAG_SEARCHES", "searches" },
+        { NM_IP4_COMPARE_FLAG_MTU, "NM_IP4_COMPARE_FLAG_MTU", "mtu" },
+        { NM_IP4_COMPARE_FLAG_MSS, "NM_IP4_COMPARE_FLAG_MSS", "mss" },
+        { NM_IP4_COMPARE_FLAG_WINS_SERVERS, "NM_IP4_COMPARE_FLAG_WINS_SERVERS", "wins-servers" },
+        { NM_IP4_COMPARE_FLAG_NIS_SERVERS, "NM_IP4_COMPARE_FLAG_NIS_SERVERS", "nis-servers" },
+        { NM_IP4_COMPARE_FLAG_NIS_DOMAIN, "NM_IP4_COMPARE_FLAG_NIS_DOMAIN", "nis-domain" },
+        { NM_IP4_COMPARE_FLAG_ALL, "NM_IP4_COMPARE_FLAG_ALL", "all" },
         { 0, NULL, NULL }
       };
       GType g_define_type_id =
-        g_enum_register_static (g_intern_static_string ("NMIP6ConfigCompareFlags"), values);
+        g_enum_register_static (g_intern_static_string ("NMIP4ConfigCompareFlags"), values);
       g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
     }
 
   return g_define_type_id__volatile;
 }
 GType
-nm_bond_error_get_type (void)
+nm_manager_error_get_type (void)
 {
   static volatile gsize g_define_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_define_type_id__volatile))
     {
       static const GEnumValue values[] = {
-        { NM_BOND_ERROR_CONNECTION_NOT_BOND, "NM_BOND_ERROR_CONNECTION_NOT_BOND", "ConnectionNotBond" },
-        { NM_BOND_ERROR_CONNECTION_INVALID, "NM_BOND_ERROR_CONNECTION_INVALID", "ConnectionInvalid" },
-        { NM_BOND_ERROR_CONNECTION_INCOMPATIBLE, "NM_BOND_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" },
+        { NM_MANAGER_ERROR_UNKNOWN_CONNECTION, "NM_MANAGER_ERROR_UNKNOWN_CONNECTION", "UnknownConnection" },
+        { NM_MANAGER_ERROR_UNKNOWN_DEVICE, "NM_MANAGER_ERROR_UNKNOWN_DEVICE", "UnknownDevice" },
+        { NM_MANAGER_ERROR_UNMANAGED_DEVICE, "NM_MANAGER_ERROR_UNMANAGED_DEVICE", "UnmanagedDevice" },
+        { NM_MANAGER_ERROR_SYSTEM_CONNECTION, "NM_MANAGER_ERROR_SYSTEM_CONNECTION", "SystemConnection" },
+        { NM_MANAGER_ERROR_PERMISSION_DENIED, "NM_MANAGER_ERROR_PERMISSION_DENIED", "PermissionDenied" },
+        { NM_MANAGER_ERROR_CONNECTION_NOT_ACTIVE, "NM_MANAGER_ERROR_CONNECTION_NOT_ACTIVE", "ConnectionNotActive" },
+        { NM_MANAGER_ERROR_ALREADY_ASLEEP_OR_AWAKE, "NM_MANAGER_ERROR_ALREADY_ASLEEP_OR_AWAKE", "AlreadyAsleepOrAwake" },
+        { NM_MANAGER_ERROR_ALREADY_ENABLED_OR_DISABLED, "NM_MANAGER_ERROR_ALREADY_ENABLED_OR_DISABLED", "AlreadyEnabledOrDisabled" },
+        { NM_MANAGER_ERROR_UNSUPPORTED_CONNECTION_TYPE, "NM_MANAGER_ERROR_UNSUPPORTED_CONNECTION_TYPE", "UnsupportedConnectionType" },
+        { NM_MANAGER_ERROR_DEPENDENCY_FAILED, "NM_MANAGER_ERROR_DEPENDENCY_FAILED", "DependencyFailed" },
+        { NM_MANAGER_ERROR_AUTOCONNECT_NOT_ALLOWED, "NM_MANAGER_ERROR_AUTOCONNECT_NOT_ALLOWED", "AutoconnectNotAllowed" },
         { 0, NULL, NULL }
       };
       GType g_define_type_id =
-        g_enum_register_static (g_intern_static_string ("NMBondError"), values);
+        g_enum_register_static (g_intern_static_string ("NMManagerError"), values);
       g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
     }
 
   return g_define_type_id__volatile;
 }
 GType
-nm_adsl_error_get_type (void)
+nm_device_error_get_type (void)
 {
   static volatile gsize g_define_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_define_type_id__volatile))
     {
       static const GEnumValue values[] = {
-        { NM_ADSL_ERROR_CONNECTION_NOT_ADSL, "NM_ADSL_ERROR_CONNECTION_NOT_ADSL", "ConnectionNotAdsl" },
-        { NM_ADSL_ERROR_CONNECTION_INVALID, "NM_ADSL_ERROR_CONNECTION_INVALID", "ConnectionInvalid" },
-        { NM_ADSL_ERROR_CONNECTION_INCOMPATIBLE, "NM_ADSL_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" },
+        { NM_DEVICE_ERROR_CONNECTION_ACTIVATING, "NM_DEVICE_ERROR_CONNECTION_ACTIVATING", "ConnectionActivating" },
+        { NM_DEVICE_ERROR_CONNECTION_INVALID, "NM_DEVICE_ERROR_CONNECTION_INVALID", "ConnectionInvalid" },
+        { NM_DEVICE_ERROR_NOT_ACTIVE, "NM_DEVICE_ERROR_NOT_ACTIVE", "NotActive" },
         { 0, NULL, NULL }
       };
       GType g_define_type_id =
-        g_enum_register_static (g_intern_static_string ("NMAdslError"), values);
+        g_enum_register_static (g_intern_static_string ("NMDeviceError"), values);
       g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
     }
 
   return g_define_type_id__volatile;
 }
 GType
-nm_config_error_get_type (void)
+nm_ip6_config_compare_flags_get_type (void)
 {
   static volatile gsize g_define_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_define_type_id__volatile))
     {
       static const GEnumValue values[] = {
-        { NM_CONFIG_ERROR_NO_MEMORY, "NM_CONFIG_ERROR_NO_MEMORY", "NoMemory" },
+        { NM_IP6_COMPARE_FLAG_NONE, "NM_IP6_COMPARE_FLAG_NONE", "none" },
+        { NM_IP6_COMPARE_FLAG_ADDRESSES, "NM_IP6_COMPARE_FLAG_ADDRESSES", "addresses" },
+        { NM_IP6_COMPARE_FLAG_PTP_ADDRESS, "NM_IP6_COMPARE_FLAG_PTP_ADDRESS", "ptp-address" },
+        { NM_IP6_COMPARE_FLAG_NAMESERVERS, "NM_IP6_COMPARE_FLAG_NAMESERVERS", "nameservers" },
+        { NM_IP6_COMPARE_FLAG_ROUTES, "NM_IP6_COMPARE_FLAG_ROUTES", "routes" },
+        { NM_IP6_COMPARE_FLAG_DOMAINS, "NM_IP6_COMPARE_FLAG_DOMAINS", "domains" },
+        { NM_IP6_COMPARE_FLAG_SEARCHES, "NM_IP6_COMPARE_FLAG_SEARCHES", "searches" },
+        { NM_IP6_COMPARE_FLAG_MSS, "NM_IP6_COMPARE_FLAG_MSS", "mss" },
+        { NM_IP6_COMPARE_FLAG_ALL, "NM_IP6_COMPARE_FLAG_ALL", "all" },
         { 0, NULL, NULL }
       };
       GType g_define_type_id =
-        g_enum_register_static (g_intern_static_string ("NMConfigError"), values);
+        g_enum_register_static (g_intern_static_string ("NMIP6ConfigCompareFlags"), values);
       g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
     }
 
   return g_define_type_id__volatile;
 }
 GType
-nm_rf_kill_state_get_type (void)
+nm_auth_call_result_get_type (void)
 {
   static volatile gsize g_define_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_define_type_id__volatile))
     {
       static const GEnumValue values[] = {
-        { RFKILL_UNBLOCKED, "RFKILL_UNBLOCKED", "unblocked" },
-        { RFKILL_SOFT_BLOCKED, "RFKILL_SOFT_BLOCKED", "soft-blocked" },
-        { RFKILL_HARD_BLOCKED, "RFKILL_HARD_BLOCKED", "hard-blocked" },
+        { NM_AUTH_CALL_RESULT_UNKNOWN, "NM_AUTH_CALL_RESULT_UNKNOWN", "unknown" },
+        { NM_AUTH_CALL_RESULT_YES, "NM_AUTH_CALL_RESULT_YES", "yes" },
+        { NM_AUTH_CALL_RESULT_AUTH, "NM_AUTH_CALL_RESULT_AUTH", "auth" },
+        { NM_AUTH_CALL_RESULT_NO, "NM_AUTH_CALL_RESULT_NO", "no" },
         { 0, NULL, NULL }
       };
       GType g_define_type_id =
-        g_enum_register_static (g_intern_static_string ("RfKillState"), values);
+        g_enum_register_static (g_intern_static_string ("NMAuthCallResult"), values);
       g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
     }
 
   return g_define_type_id__volatile;
 }
 GType
-nm_rf_kill_type_get_type (void)
+nm_bridge_error_get_type (void)
 {
   static volatile gsize g_define_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_define_type_id__volatile))
     {
       static const GEnumValue values[] = {
-        { RFKILL_TYPE_WLAN, "RFKILL_TYPE_WLAN", "wlan" },
-        { RFKILL_TYPE_WWAN, "RFKILL_TYPE_WWAN", "wwan" },
-        { RFKILL_TYPE_WIMAX, "RFKILL_TYPE_WIMAX", "wimax" },
-        { RFKILL_TYPE_UNKNOWN, "RFKILL_TYPE_UNKNOWN", "unknown" },
-        { RFKILL_TYPE_MAX, "RFKILL_TYPE_MAX", "max" },
+        { NM_BRIDGE_ERROR_CONNECTION_NOT_BRIDGE, "NM_BRIDGE_ERROR_CONNECTION_NOT_BRIDGE", "ConnectionNotBridge" },
+        { NM_BRIDGE_ERROR_CONNECTION_INVALID, "NM_BRIDGE_ERROR_CONNECTION_INVALID", "ConnectionInvalid" },
+        { NM_BRIDGE_ERROR_CONNECTION_INCOMPATIBLE, "NM_BRIDGE_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" },
         { 0, NULL, NULL }
       };
       GType g_define_type_id =
-        g_enum_register_static (g_intern_static_string ("RfKillType"), values);
+        g_enum_register_static (g_intern_static_string ("NMBridgeError"), values);
       g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
     }
 
   return g_define_type_id__volatile;
 }
 GType
-nm_bt_error_get_type (void)
+nm_wifi_error_get_type (void)
 {
   static volatile gsize g_define_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_define_type_id__volatile))
     {
       static const GEnumValue values[] = {
-        { NM_BT_ERROR_CONNECTION_NOT_BT, "NM_BT_ERROR_CONNECTION_NOT_BT", "ConnectionNotBt" },
-        { NM_BT_ERROR_CONNECTION_INVALID, "NM_BT_ERROR_CONNECTION_INVALID", "ConnectionInvalid" },
-        { NM_BT_ERROR_CONNECTION_INCOMPATIBLE, "NM_BT_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" },
+        { NM_WIFI_ERROR_CONNECTION_NOT_WIRELESS, "NM_WIFI_ERROR_CONNECTION_NOT_WIRELESS", "ConnectionNotWireless" },
+        { NM_WIFI_ERROR_CONNECTION_INVALID, "NM_WIFI_ERROR_CONNECTION_INVALID", "ConnectionInvalid" },
+        { NM_WIFI_ERROR_CONNECTION_INCOMPATIBLE, "NM_WIFI_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" },
+        { NM_WIFI_ERROR_ACCESS_POINT_NOT_FOUND, "NM_WIFI_ERROR_ACCESS_POINT_NOT_FOUND", "AccessPointNotFound" },
+        { NM_WIFI_ERROR_SCAN_NOT_ALLOWED, "NM_WIFI_ERROR_SCAN_NOT_ALLOWED", "ScanNotAllowed" },
+        { NM_WIFI_ERROR_AP_MODE_UNSUPPORTED, "NM_WIFI_ERROR_AP_MODE_UNSUPPORTED", "ApModeUnsupported" },
+        { NM_WIFI_ERROR_ADHOC_MODE_UNSUPPORTED, "NM_WIFI_ERROR_ADHOC_MODE_UNSUPPORTED", "AdhocModeUnsupported" },
         { 0, NULL, NULL }
       };
       GType g_define_type_id =
-        g_enum_register_static (g_intern_static_string ("NMBtError"), values);
+        g_enum_register_static (g_intern_static_string ("NMWifiError"), values);
       g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
     }
 
   return g_define_type_id__volatile;
 }
 GType
-nm_infiniband_error_get_type (void)
+nm_nm_nl_prop_get_type (void)
 {
   static volatile gsize g_define_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_define_type_id__volatile))
     {
       static const GEnumValue values[] = {
-        { NM_INFINIBAND_ERROR_CONNECTION_NOT_INFINIBAND, "NM_INFINIBAND_ERROR_CONNECTION_NOT_INFINIBAND", "ConnectionNotInfiniband" },
-        { NM_INFINIBAND_ERROR_CONNECTION_INVALID, "NM_INFINIBAND_ERROR_CONNECTION_INVALID", "ConnectionInvalid" },
-        { NM_INFINIBAND_ERROR_CONNECTION_INCOMPATIBLE, "NM_INFINIBAND_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" },
+        { NMNL_PROP_INVALID, "NMNL_PROP_INVALID", "invalid" },
+        { NMNL_PROP_PROT, "NMNL_PROP_PROT", "prot" },
+        { NMNL_PROP_SCOPE, "NMNL_PROP_SCOPE", "scope" },
+        { NMNL_PROP_TABLE, "NMNL_PROP_TABLE", "table" },
+        { NMNL_PROP_PRIO, "NMNL_PROP_PRIO", "prio" },
         { 0, NULL, NULL }
       };
       GType g_define_type_id =
-        g_enum_register_static (g_intern_static_string ("NMInfinibandError"), values);
+        g_enum_register_static (g_intern_static_string ("NmNlProp"), values);
       g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
     }
 
   return g_define_type_id__volatile;
 }
 GType
-nm_wifi_error_get_type (void)
+nm_vlan_error_get_type (void)
 {
   static volatile gsize g_define_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_define_type_id__volatile))
     {
       static const GEnumValue values[] = {
-        { NM_WIFI_ERROR_CONNECTION_NOT_WIRELESS, "NM_WIFI_ERROR_CONNECTION_NOT_WIRELESS", "ConnectionNotWireless" },
-        { NM_WIFI_ERROR_CONNECTION_INVALID, "NM_WIFI_ERROR_CONNECTION_INVALID", "ConnectionInvalid" },
-        { NM_WIFI_ERROR_CONNECTION_INCOMPATIBLE, "NM_WIFI_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" },
-        { NM_WIFI_ERROR_ACCESS_POINT_NOT_FOUND, "NM_WIFI_ERROR_ACCESS_POINT_NOT_FOUND", "AccessPointNotFound" },
-        { NM_WIFI_ERROR_SCAN_NOT_ALLOWED, "NM_WIFI_ERROR_SCAN_NOT_ALLOWED", "ScanNotAllowed" },
-        { NM_WIFI_ERROR_AP_MODE_UNSUPPORTED, "NM_WIFI_ERROR_AP_MODE_UNSUPPORTED", "ApModeUnsupported" },
-        { NM_WIFI_ERROR_ADHOC_MODE_UNSUPPORTED, "NM_WIFI_ERROR_ADHOC_MODE_UNSUPPORTED", "AdhocModeUnsupported" },
+        { NM_VLAN_ERROR_CONNECTION_NOT_VLAN, "NM_VLAN_ERROR_CONNECTION_NOT_VLAN", "ConnectionNotVlan" },
+        { NM_VLAN_ERROR_CONNECTION_INVALID, "NM_VLAN_ERROR_CONNECTION_INVALID", "ConnectionInvalid" },
+        { NM_VLAN_ERROR_CONNECTION_INCOMPATIBLE, "NM_VLAN_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" },
         { 0, NULL, NULL }
       };
       GType g_define_type_id =
-        g_enum_register_static (g_intern_static_string ("NMWifiError"), values);
+        g_enum_register_static (g_intern_static_string ("NMVlanError"), values);
       g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
     }
 
   return g_define_type_id__volatile;
 }
 GType
-nm_session_monitor_error_get_type (void)
+nm_netlink_monitor_error_get_type (void)
 {
   static volatile gsize g_define_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_define_type_id__volatile))
     {
       static const GEnumValue values[] = {
-        { NM_SESSION_MONITOR_ERROR_IO_ERROR, "NM_SESSION_MONITOR_ERROR_IO_ERROR", "IOError" },
-        { NM_SESSION_MONITOR_ERROR_MALFORMED_DATABASE, "NM_SESSION_MONITOR_ERROR_MALFORMED_DATABASE", "MalformedDatabase" },
-        { NM_SESSION_MONITOR_ERROR_UNKNOWN_USER, "NM_SESSION_MONITOR_ERROR_UNKNOWN_USER", "UnknownUser" },
-        { NM_SESSION_MONITOR_ERROR_NO_DATABASE, "NM_SESSION_MONITOR_ERROR_NO_DATABASE", "NoDatabase" },
+        { NM_NETLINK_MONITOR_ERROR_GENERIC, "NM_NETLINK_MONITOR_ERROR_GENERIC", "generic" },
+        { NM_NETLINK_MONITOR_ERROR_NETLINK_ALLOC_HANDLE, "NM_NETLINK_MONITOR_ERROR_NETLINK_ALLOC_HANDLE", "netlink-alloc-handle" },
+        { NM_NETLINK_MONITOR_ERROR_NETLINK_CONNECT, "NM_NETLINK_MONITOR_ERROR_NETLINK_CONNECT", "netlink-connect" },
+        { NM_NETLINK_MONITOR_ERROR_NETLINK_JOIN_GROUP, "NM_NETLINK_MONITOR_ERROR_NETLINK_JOIN_GROUP", "netlink-join-group" },
+        { NM_NETLINK_MONITOR_ERROR_NETLINK_ALLOC_LINK_CACHE, "NM_NETLINK_MONITOR_ERROR_NETLINK_ALLOC_LINK_CACHE", "netlink-alloc-link-cache" },
+        { NM_NETLINK_MONITOR_ERROR_PROCESSING_MESSAGE, "NM_NETLINK_MONITOR_ERROR_PROCESSING_MESSAGE", "processing-message" },
+        { NM_NETLINK_MONITOR_ERROR_BAD_ALLOC, "NM_NETLINK_MONITOR_ERROR_BAD_ALLOC", "bad-alloc" },
+        { NM_NETLINK_MONITOR_ERROR_WAITING_FOR_SOCKET_DATA, "NM_NETLINK_MONITOR_ERROR_WAITING_FOR_SOCKET_DATA", "waiting-for-socket-data" },
+        { NM_NETLINK_MONITOR_ERROR_LINK_CACHE_UPDATE, "NM_NETLINK_MONITOR_ERROR_LINK_CACHE_UPDATE", "link-cache-update" },
         { 0, NULL, NULL }
       };
       GType g_define_type_id =
-        g_enum_register_static (g_intern_static_string ("NMSessionMonitorError"), values);
+        g_enum_register_static (g_intern_static_string ("NMNetlinkMonitorError"), values);
       g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
     }
 
   return g_define_type_id__volatile;
 }
 GType
-nm_ethernet_error_get_type (void)
+nm_olpc_mesh_error_get_type (void)
 {
   static volatile gsize g_define_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_define_type_id__volatile))
     {
       static const GEnumValue values[] = {
-        { NM_ETHERNET_ERROR_CONNECTION_NOT_WIRED, "NM_ETHERNET_ERROR_CONNECTION_NOT_WIRED", "ConnectionNotWired" },
-        { NM_ETHERNET_ERROR_CONNECTION_INVALID, "NM_ETHERNET_ERROR_CONNECTION_INVALID", "ConnectionInvalid" },
-        { NM_ETHERNET_ERROR_CONNECTION_INCOMPATIBLE, "NM_ETHERNET_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" },
+        { NM_OLPC_MESH_ERROR_CONNECTION_NOT_MESH, "NM_OLPC_MESH_ERROR_CONNECTION_NOT_MESH", "ConnectionNotMesh" },
+        { NM_OLPC_MESH_ERROR_CONNECTION_INVALID, "NM_OLPC_MESH_ERROR_CONNECTION_INVALID", "ConnectionInvalid" },
+        { NM_OLPC_MESH_ERROR_CONNECTION_INCOMPATIBLE, "NM_OLPC_MESH_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" },
         { 0, NULL, NULL }
       };
       GType g_define_type_id =
-        g_enum_register_static (g_intern_static_string ("NMEthernetError"), values);
+        g_enum_register_static (g_intern_static_string ("NMOlpcMeshError"), values);
       g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
     }
 
   return g_define_type_id__volatile;
 }
 GType
-nm_dispatcher_action_get_type (void)
+nm_adsl_error_get_type (void)
 {
   static volatile gsize g_define_type_id__volatile = 0;
 
   if (g_once_init_enter (&g_define_type_id__volatile))
     {
       static const GEnumValue values[] = {
-        { DISPATCHER_ACTION_HOSTNAME, "DISPATCHER_ACTION_HOSTNAME", "hostname" },
-        { DISPATCHER_ACTION_UP, "DISPATCHER_ACTION_UP", "up" },
-        { DISPATCHER_ACTION_PRE_DOWN, "DISPATCHER_ACTION_PRE_DOWN", "pre-down" },
-        { DISPATCHER_ACTION_DOWN, "DISPATCHER_ACTION_DOWN", "down" },
-        { DISPATCHER_ACTION_VPN_UP, "DISPATCHER_ACTION_VPN_UP", "vpn-up" },
-        { DISPATCHER_ACTION_VPN_PRE_DOWN, "DISPATCHER_ACTION_VPN_PRE_DOWN", "vpn-pre-down" },
-        { DISPATCHER_ACTION_VPN_DOWN, "DISPATCHER_ACTION_VPN_DOWN", "vpn-down" },
-        { DISPATCHER_ACTION_DHCP4_CHANGE, "DISPATCHER_ACTION_DHCP4_CHANGE", "dhcp4-change" },
-        { DISPATCHER_ACTION_DHCP6_CHANGE, "DISPATCHER_ACTION_DHCP6_CHANGE", "dhcp6-change" },
+        { NM_ADSL_ERROR_CONNECTION_NOT_ADSL, "NM_ADSL_ERROR_CONNECTION_NOT_ADSL", "ConnectionNotAdsl" },
+        { NM_ADSL_ERROR_CONNECTION_INVALID, "NM_ADSL_ERROR_CONNECTION_INVALID", "ConnectionInvalid" },
+        { NM_ADSL_ERROR_CONNECTION_INCOMPATIBLE, "NM_ADSL_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" },
         { 0, NULL, NULL }
       };
       GType g_define_type_id =
-        g_enum_register_static (g_intern_static_string ("DispatcherAction"), values);
+        g_enum_register_static (g_intern_static_string ("NMAdslError"), values);
       g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
     }
 
@@ -954,6 +954,7 @@ nm_settings_error_get_type (void)
         { NM_SETTINGS_ERROR_ADD_FAILED, "NM_SETTINGS_ERROR_ADD_FAILED", "AddFailed" },
         { NM_SETTINGS_ERROR_SAVE_HOSTNAME_NOT_SUPPORTED, "NM_SETTINGS_ERROR_SAVE_HOSTNAME_NOT_SUPPORTED", "SaveHostnameNotSupported" },
         { NM_SETTINGS_ERROR_SAVE_HOSTNAME_FAILED, "NM_SETTINGS_ERROR_SAVE_HOSTNAME_FAILED", "SaveHostnameFailed" },
+        { NM_SETTINGS_ERROR_HOSTNAME_INVALID, "NM_SETTINGS_ERROR_HOSTNAME_INVALID", "HostnameInvalid" },
         { NM_SETTINGS_ERROR_UUID_EXISTS, "NM_SETTINGS_ERROR_UUID_EXISTS", "UuidExists" },
         { 0, NULL, NULL }
       };
diff --git a/src/generated/nm-enum-types.h b/src/generated/nm-enum-types.h
index 9c53b188..e0703b20 100644
--- a/src/generated/nm-enum-types.h
+++ b/src/generated/nm-enum-types.h
@@ -9,48 +9,48 @@
 #include <glib-object.h>
 
 G_BEGIN_DECLS
+GType nm_bt_error_get_type (void) G_GNUC_CONST;
+#define NM_TYPE_BT_ERROR (nm_bt_error_get_type ())
+GType nm_infiniband_error_get_type (void) G_GNUC_CONST;
+#define NM_TYPE_INFINIBAND_ERROR (nm_infiniband_error_get_type ())
+GType nm_bond_error_get_type (void) G_GNUC_CONST;
+#define NM_TYPE_BOND_ERROR (nm_bond_error_get_type ())
+GType nm_session_monitor_error_get_type (void) G_GNUC_CONST;
+#define NM_TYPE_SESSION_MONITOR_ERROR (nm_session_monitor_error_get_type ())
+GType nm_ethernet_error_get_type (void) G_GNUC_CONST;
+#define NM_TYPE_ETHERNET_ERROR (nm_ethernet_error_get_type ())
+GType nm_config_error_get_type (void) G_GNUC_CONST;
+#define NM_TYPE_CONFIG_ERROR (nm_config_error_get_type ())
+GType nm_rf_kill_state_get_type (void) G_GNUC_CONST;
+#define NM_TYPE_RF_KILL_STATE (nm_rf_kill_state_get_type ())
+GType nm_rf_kill_type_get_type (void) G_GNUC_CONST;
+#define NM_TYPE_RF_KILL_TYPE (nm_rf_kill_type_get_type ())
+GType nm_dispatcher_action_get_type (void) G_GNUC_CONST;
+#define NM_TYPE_DISPATCHER_ACTION (nm_dispatcher_action_get_type ())
+GType nm_ip4_config_compare_flags_get_type (void) G_GNUC_CONST;
+#define NM_TYPE_IP4_CONFIG_COMPARE_FLAGS (nm_ip4_config_compare_flags_get_type ())
 GType nm_manager_error_get_type (void) G_GNUC_CONST;
 #define NM_TYPE_MANAGER_ERROR (nm_manager_error_get_type ())
+GType nm_device_error_get_type (void) G_GNUC_CONST;
+#define NM_TYPE_DEVICE_ERROR (nm_device_error_get_type ())
+GType nm_ip6_config_compare_flags_get_type (void) G_GNUC_CONST;
+#define NM_TYPE_IP6_CONFIG_COMPARE_FLAGS (nm_ip6_config_compare_flags_get_type ())
 GType nm_auth_call_result_get_type (void) G_GNUC_CONST;
 #define NM_TYPE_AUTH_CALL_RESULT (nm_auth_call_result_get_type ())
+GType nm_bridge_error_get_type (void) G_GNUC_CONST;
+#define NM_TYPE_BRIDGE_ERROR (nm_bridge_error_get_type ())
+GType nm_wifi_error_get_type (void) G_GNUC_CONST;
+#define NM_TYPE_WIFI_ERROR (nm_wifi_error_get_type ())
 GType nm_nm_nl_prop_get_type (void) G_GNUC_CONST;
 #define NM_TYPE_NM_NL_PROP (nm_nm_nl_prop_get_type ())
-GType nm_netlink_monitor_error_get_type (void) G_GNUC_CONST;
-#define NM_TYPE_NETLINK_MONITOR_ERROR (nm_netlink_monitor_error_get_type ())
 GType nm_vlan_error_get_type (void) G_GNUC_CONST;
 #define NM_TYPE_VLAN_ERROR (nm_vlan_error_get_type ())
-GType nm_ip4_config_compare_flags_get_type (void) G_GNUC_CONST;
-#define NM_TYPE_IP4_CONFIG_COMPARE_FLAGS (nm_ip4_config_compare_flags_get_type ())
-GType nm_device_error_get_type (void) G_GNUC_CONST;
-#define NM_TYPE_DEVICE_ERROR (nm_device_error_get_type ())
+GType nm_netlink_monitor_error_get_type (void) G_GNUC_CONST;
+#define NM_TYPE_NETLINK_MONITOR_ERROR (nm_netlink_monitor_error_get_type ())
 GType nm_olpc_mesh_error_get_type (void) G_GNUC_CONST;
 #define NM_TYPE_OLPC_MESH_ERROR (nm_olpc_mesh_error_get_type ())
-GType nm_bridge_error_get_type (void) G_GNUC_CONST;
-#define NM_TYPE_BRIDGE_ERROR (nm_bridge_error_get_type ())
-GType nm_ip6_config_compare_flags_get_type (void) G_GNUC_CONST;
-#define NM_TYPE_IP6_CONFIG_COMPARE_FLAGS (nm_ip6_config_compare_flags_get_type ())
-GType nm_bond_error_get_type (void) G_GNUC_CONST;
-#define NM_TYPE_BOND_ERROR (nm_bond_error_get_type ())
 GType nm_adsl_error_get_type (void) G_GNUC_CONST;
 #define NM_TYPE_ADSL_ERROR (nm_adsl_error_get_type ())
-GType nm_config_error_get_type (void) G_GNUC_CONST;
-#define NM_TYPE_CONFIG_ERROR (nm_config_error_get_type ())
-GType nm_rf_kill_state_get_type (void) G_GNUC_CONST;
-#define NM_TYPE_RF_KILL_STATE (nm_rf_kill_state_get_type ())
-GType nm_rf_kill_type_get_type (void) G_GNUC_CONST;
-#define NM_TYPE_RF_KILL_TYPE (nm_rf_kill_type_get_type ())
-GType nm_bt_error_get_type (void) G_GNUC_CONST;
-#define NM_TYPE_BT_ERROR (nm_bt_error_get_type ())
-GType nm_infiniband_error_get_type (void) G_GNUC_CONST;
-#define NM_TYPE_INFINIBAND_ERROR (nm_infiniband_error_get_type ())
-GType nm_wifi_error_get_type (void) G_GNUC_CONST;
-#define NM_TYPE_WIFI_ERROR (nm_wifi_error_get_type ())
-GType nm_session_monitor_error_get_type (void) G_GNUC_CONST;
-#define NM_TYPE_SESSION_MONITOR_ERROR (nm_session_monitor_error_get_type ())
-GType nm_ethernet_error_get_type (void) G_GNUC_CONST;
-#define NM_TYPE_ETHERNET_ERROR (nm_ethernet_error_get_type ())
-GType nm_dispatcher_action_get_type (void) G_GNUC_CONST;
-#define NM_TYPE_DISPATCHER_ACTION (nm_dispatcher_action_get_type ())
 GType nm_logging_error_get_type (void) G_GNUC_CONST;
 #define NM_TYPE_LOGGING_ERROR (nm_logging_error_get_type ())
 GType nm_dns_manager_error_get_type (void) G_GNUC_CONST;
diff --git a/src/generated/nm-marshal.c b/src/generated/nm-marshal.c
index f6ff4eca..c7180f1b 100644
--- a/src/generated/nm-marshal.c
+++ b/src/generated/nm-marshal.c
@@ -319,24 +319,28 @@ _nm_marshal_VOID__POINTER_POINTER_POINTER_POINTER_INT (GClosure     *closure,
             data2);
 }
 
-/* VOID:POINTER,STRING (nm-marshal.list:9) */
+/* VOID:POINTER,POINTER,STRING,BOOLEAN,POINTER,POINTER (nm-marshal.list:9) */
 void
-_nm_marshal_VOID__POINTER_STRING (GClosure     *closure,
-                                  GValue       *return_value G_GNUC_UNUSED,
-                                  guint         n_param_values,
-                                  const GValue *param_values,
-                                  gpointer      invocation_hint G_GNUC_UNUSED,
-                                  gpointer      marshal_data)
+_nm_marshal_VOID__POINTER_POINTER_STRING_BOOLEAN_POINTER_POINTER (GClosure     *closure,
+                                                                  GValue       *return_value G_GNUC_UNUSED,
+                                                                  guint         n_param_values,
+                                                                  const GValue *param_values,
+                                                                  gpointer      invocation_hint G_GNUC_UNUSED,
+                                                                  gpointer      marshal_data)
 {
-  typedef void (*GMarshalFunc_VOID__POINTER_STRING) (gpointer     data1,
-                                                     gpointer     arg_1,
-                                                     gpointer     arg_2,
-                                                     gpointer     data2);
-  register GMarshalFunc_VOID__POINTER_STRING callback;
+  typedef void (*GMarshalFunc_VOID__POINTER_POINTER_STRING_BOOLEAN_POINTER_POINTER) (gpointer     data1,
+                                                                                     gpointer     arg_1,
+                                                                                     gpointer     arg_2,
+                                                                                     gpointer     arg_3,
+                                                                                     gboolean     arg_4,
+                                                                                     gpointer     arg_5,
+                                                                                     gpointer     arg_6,
+                                                                                     gpointer     data2);
+  register GMarshalFunc_VOID__POINTER_POINTER_STRING_BOOLEAN_POINTER_POINTER callback;
   register GCClosure *cc = (GCClosure*) closure;
   register gpointer data1, data2;
 
-  g_return_if_fail (n_param_values == 3);
+  g_return_if_fail (n_param_values == 7);
 
   if (G_CCLOSURE_SWAP_DATA (closure))
     {
@@ -348,35 +352,36 @@ _nm_marshal_VOID__POINTER_STRING (GClosure     *closure,
       data1 = g_value_peek_pointer (param_values + 0);
       data2 = closure->data;
     }
-  callback = (GMarshalFunc_VOID__POINTER_STRING) (marshal_data ? marshal_data : cc->callback);
+  callback = (GMarshalFunc_VOID__POINTER_POINTER_STRING_BOOLEAN_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
 
   callback (data1,
             g_marshal_value_peek_pointer (param_values + 1),
-            g_marshal_value_peek_string (param_values + 2),
+            g_marshal_value_peek_pointer (param_values + 2),
+            g_marshal_value_peek_string (param_values + 3),
+            g_marshal_value_peek_boolean (param_values + 4),
+            g_marshal_value_peek_pointer (param_values + 5),
+            g_marshal_value_peek_pointer (param_values + 6),
             data2);
 }
 
-/* VOID:POINTER,STRING,BOOLEAN,POINTER,POINTER (nm-marshal.list:10) */
+/* VOID:POINTER,STRING (nm-marshal.list:10) */
 void
-_nm_marshal_VOID__POINTER_STRING_BOOLEAN_POINTER_POINTER (GClosure     *closure,
-                                                          GValue       *return_value G_GNUC_UNUSED,
-                                                          guint         n_param_values,
-                                                          const GValue *param_values,
-                                                          gpointer      invocation_hint G_GNUC_UNUSED,
-                                                          gpointer      marshal_data)
+_nm_marshal_VOID__POINTER_STRING (GClosure     *closure,
+                                  GValue       *return_value G_GNUC_UNUSED,
+                                  guint         n_param_values,
+                                  const GValue *param_values,
+                                  gpointer      invocation_hint G_GNUC_UNUSED,
+                                  gpointer      marshal_data)
 {
-  typedef void (*GMarshalFunc_VOID__POINTER_STRING_BOOLEAN_POINTER_POINTER) (gpointer     data1,
-                                                                             gpointer     arg_1,
-                                                                             gpointer     arg_2,
-                                                                             gboolean     arg_3,
-                                                                             gpointer     arg_4,
-                                                                             gpointer     arg_5,
-                                                                             gpointer     data2);
-  register GMarshalFunc_VOID__POINTER_STRING_BOOLEAN_POINTER_POINTER callback;
+  typedef void (*GMarshalFunc_VOID__POINTER_STRING) (gpointer     data1,
+                                                     gpointer     arg_1,
+                                                     gpointer     arg_2,
+                                                     gpointer     data2);
+  register GMarshalFunc_VOID__POINTER_STRING callback;
   register GCClosure *cc = (GCClosure*) closure;
   register gpointer data1, data2;
 
-  g_return_if_fail (n_param_values == 6);
+  g_return_if_fail (n_param_values == 3);
 
   if (G_CCLOSURE_SWAP_DATA (closure))
     {
@@ -388,14 +393,11 @@ _nm_marshal_VOID__POINTER_STRING_BOOLEAN_POINTER_POINTER (GClosure     *closure,
       data1 = g_value_peek_pointer (param_values + 0);
       data2 = closure->data;
     }
-  callback = (GMarshalFunc_VOID__POINTER_STRING_BOOLEAN_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
+  callback = (GMarshalFunc_VOID__POINTER_STRING) (marshal_data ? marshal_data : cc->callback);
 
   callback (data1,
             g_marshal_value_peek_pointer (param_values + 1),
             g_marshal_value_peek_string (param_values + 2),
-            g_marshal_value_peek_boolean (param_values + 3),
-            g_marshal_value_peek_pointer (param_values + 4),
-            g_marshal_value_peek_pointer (param_values + 5),
             data2);
 }
 
diff --git a/src/generated/nm-marshal.h b/src/generated/nm-marshal.h
index e93cee13..a940d9f1 100644
--- a/src/generated/nm-marshal.h
+++ b/src/generated/nm-marshal.h
@@ -65,7 +65,15 @@ extern void _nm_marshal_VOID__POINTER_POINTER_POINTER_POINTER_INT (GClosure
                                                                    gpointer      invocation_hint,
                                                                    gpointer      marshal_data);
 
-/* VOID:POINTER,STRING (nm-marshal.list:9) */
+/* VOID:POINTER,POINTER,STRING,BOOLEAN,POINTER,POINTER (nm-marshal.list:9) */
+extern void _nm_marshal_VOID__POINTER_POINTER_STRING_BOOLEAN_POINTER_POINTER (GClosure     *closure,
+                                                                              GValue       *return_value,
+                                                                              guint         n_param_values,
+                                                                              const GValue *param_values,
+                                                                              gpointer      invocation_hint,
+                                                                              gpointer      marshal_data);
+
+/* VOID:POINTER,STRING (nm-marshal.list:10) */
 extern void _nm_marshal_VOID__POINTER_STRING (GClosure     *closure,
                                               GValue       *return_value,
                                               guint         n_param_values,
@@ -73,14 +81,6 @@ extern void _nm_marshal_VOID__POINTER_STRING (GClosure     *closure,
                                               gpointer      invocation_hint,
                                               gpointer      marshal_data);
 
-/* VOID:POINTER,STRING,BOOLEAN,POINTER,POINTER (nm-marshal.list:10) */
-extern void _nm_marshal_VOID__POINTER_STRING_BOOLEAN_POINTER_POINTER (GClosure     *closure,
-                                                                      GValue       *return_value,
-                                                                      guint         n_param_values,
-                                                                      const GValue *param_values,
-                                                                      gpointer      invocation_hint,
-                                                                      gpointer      marshal_data);
-
 /* VOID:STRING,BOXED (nm-marshal.list:11) */
 extern void _nm_marshal_VOID__STRING_BOXED (GClosure     *closure,
                                             GValue       *return_value,
diff --git a/src/ip6-manager/Makefile.am b/src/ip6-manager/Makefile.am
index eb730394..25f57497 100644
--- a/src/ip6-manager/Makefile.am
+++ b/src/ip6-manager/Makefile.am
@@ -1,4 +1,6 @@
-INCLUDES = \
+noinst_LTLIBRARIES = libip6-manager.la
+
+libip6_manager_la_CPPFLAGS = \
 	-I${top_srcdir} \
 	-I${top_builddir}/include \
 	-I${top_srcdir}/include \
@@ -7,19 +9,15 @@ INCLUDES = \
 	-I${top_builddir}/src/generated \
 	-I${top_srcdir}/src/generated \
 	-I${top_srcdir}/src/logging \
-	-I${top_srcdir}/src
-
-noinst_LTLIBRARIES = libip6-manager.la
+	-I${top_srcdir}/src \
+	$(LIBNL_CFLAGS) \
+	$(DBUS_CFLAGS) \
+	$(GLIB_CFLAGS)
 
 libip6_manager_la_SOURCES = \
 	nm-ip6-manager.c \
 	nm-ip6-manager.h
 
-libip6_manager_la_CPPFLAGS = \
-	$(LIBNL_CFLAGS) \
-	$(DBUS_CFLAGS) \
-	$(GLIB_CFLAGS)
-
 libip6_manager_la_LIBADD = \
 	$(top_builddir)/src/generated/libnm-generated.la \
 	$(top_builddir)/src/logging/libnm-logging.la \
diff --git a/src/ip6-manager/Makefile.in b/src/ip6-manager/Makefile.in
index 26537810..61a75826 100644
--- a/src/ip6-manager/Makefile.in
+++ b/src/ip6-manager/Makefile.in
@@ -206,6 +206,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -228,6 +229,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -412,7 +414,8 @@ with_dhclient = @with_dhclient@
 with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
-INCLUDES = \
+noinst_LTLIBRARIES = libip6-manager.la
+libip6_manager_la_CPPFLAGS = \
 	-I${top_srcdir} \
 	-I${top_builddir}/include \
 	-I${top_srcdir}/include \
@@ -421,18 +424,15 @@ INCLUDES = \
 	-I${top_builddir}/src/generated \
 	-I${top_srcdir}/src/generated \
 	-I${top_srcdir}/src/logging \
-	-I${top_srcdir}/src
+	-I${top_srcdir}/src \
+	$(LIBNL_CFLAGS) \
+	$(DBUS_CFLAGS) \
+	$(GLIB_CFLAGS)
 
-noinst_LTLIBRARIES = libip6-manager.la
 libip6_manager_la_SOURCES = \
 	nm-ip6-manager.c \
 	nm-ip6-manager.h
 
-libip6_manager_la_CPPFLAGS = \
-	$(LIBNL_CFLAGS) \
-	$(DBUS_CFLAGS) \
-	$(GLIB_CFLAGS)
-
 libip6_manager_la_LIBADD = \
 	$(top_builddir)/src/generated/libnm-generated.la \
 	$(top_builddir)/src/logging/libnm-logging.la \
diff --git a/src/logging/Makefile.in b/src/logging/Makefile.in
index 3d2db232..c5192bf0 100644
--- a/src/logging/Makefile.in
+++ b/src/logging/Makefile.in
@@ -202,6 +202,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -224,6 +225,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
diff --git a/src/main.c b/src/main.c
index ffa994c1..eb829a7b 100644
--- a/src/main.c
+++ b/src/main.c
@@ -388,11 +388,13 @@ main (int argc, char *argv[])
 	g_option_context_set_summary (opt_ctx,
 		_("NetworkManager monitors all network connections and automatically\nchooses the best connection to use.  It also allows the user to\nspecify wireless access points which wireless cards in the computer\nshould associate with."));
 
-	success = g_option_context_parse (opt_ctx, &argc, &argv, NULL);
+	success = g_option_context_parse (opt_ctx, &argc, &argv, &error);
 	g_option_context_free (opt_ctx);
 
 	if (!success) {
-		fprintf (stderr, _("Invalid option.  Please use --help to see a list of valid options.\n"));
+		fprintf (stderr, _("%s.  Please use --help to see a list of valid options.\n"),
+		         error->message);
+		g_clear_error (&error);
 		exit (1);
 	}
 
diff --git a/src/modem-manager/Makefile.am b/src/modem-manager/Makefile.am
index aa5534fc..012d26ea 100644
--- a/src/modem-manager/Makefile.am
+++ b/src/modem-manager/Makefile.am
@@ -1,6 +1,8 @@
 include $(GLIB_MAKEFILE)
 
-INCLUDES = \
+noinst_LTLIBRARIES = libmodem-manager.la
+
+libmodem_manager_la_CPPFLAGS = \
 	-I${top_srcdir}/src \
 	-I${top_builddir}/src/generated \
 	-I${top_srcdir}/src/generated \
@@ -8,9 +10,9 @@ INCLUDES = \
 	-I${top_builddir}/include \
 	-I${top_srcdir}/include \
 	-I${top_builddir}/libnm-util \
-	-I${top_srcdir}/libnm-util
-
-noinst_LTLIBRARIES = libmodem-manager.la
+	-I${top_srcdir}/libnm-util \
+	$(LIBNL_CFLAGS) \
+	$(DBUS_CFLAGS)
 
 libmodem_manager_la_SOURCES = \
 	nm-modem.c \
@@ -25,10 +27,6 @@ libmodem_manager_la_SOURCES = \
 	nm-modem-manager.c \
 	nm-modem-types.h
 
-libmodem_manager_la_CPPFLAGS = \
-	$(LIBNL_CFLAGS) \
-	$(DBUS_CFLAGS)
-
 libmodem_manager_la_LIBADD = \
 	$(top_builddir)/src/generated/libnm-generated.la \
 	$(top_builddir)/src/logging/libnm-logging.la \
diff --git a/src/modem-manager/Makefile.in b/src/modem-manager/Makefile.in
index ea79607f..d945f9c9 100644
--- a/src/modem-manager/Makefile.in
+++ b/src/modem-manager/Makefile.in
@@ -225,6 +225,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -247,6 +248,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -431,23 +433,17 @@ with_dhclient = @with_dhclient@
 with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
-INCLUDES = \
-	-I${top_srcdir}/src \
-	-I${top_builddir}/src/generated \
-	-I${top_srcdir}/src/generated \
-	-I${top_srcdir}/src/logging \
-	-I${top_builddir}/include \
-	-I${top_srcdir}/include \
-	-I${top_builddir}/libnm-util \
-	-I${top_srcdir}/libnm-util
-
 noinst_LTLIBRARIES = libmodem-manager.la
+libmodem_manager_la_CPPFLAGS = -I${top_srcdir}/src \
+	-I${top_builddir}/src/generated -I${top_srcdir}/src/generated \
+	-I${top_srcdir}/src/logging -I${top_builddir}/include \
+	-I${top_srcdir}/include -I${top_builddir}/libnm-util \
+	-I${top_srcdir}/libnm-util $(LIBNL_CFLAGS) $(DBUS_CFLAGS) \
+	$(am__append_2)
 libmodem_manager_la_SOURCES = nm-modem.c nm-modem.h nm-modem-generic.c \
 	nm-modem-generic.h nm-modem-cdma.c nm-modem-cdma.h \
 	nm-modem-gsm.c nm-modem-gsm.h nm-modem-manager.h \
 	nm-modem-manager.c nm-modem-types.h $(am__append_1)
-libmodem_manager_la_CPPFLAGS = $(LIBNL_CFLAGS) $(DBUS_CFLAGS) \
-	$(am__append_2)
 libmodem_manager_la_LIBADD =  \
 	$(top_builddir)/src/generated/libnm-generated.la \
 	$(top_builddir)/src/logging/libnm-logging.la $(LIBNL_LIBS) \
diff --git a/src/modem-manager/nm-modem-manager.c b/src/modem-manager/nm-modem-manager.c
index dd01646e..7b566ca4 100644
--- a/src/modem-manager/nm-modem-manager.c
+++ b/src/modem-manager/nm-modem-manager.c
@@ -51,7 +51,7 @@ struct _NMModemManagerPrivate {
 	/* ModemManager >= 0.7 */
 	GDBusConnection *dbus_connection;
 	MMManager *modem_manager_1;
-	guint modem_manager_1_poke_id;
+	guint modem_manager_1_launch_id;
 	gboolean old_modem_manager_found;
 	gboolean new_modem_manager_found;
 	guint modem_manager_1_name_owner_changed_id;
@@ -442,9 +442,9 @@ modem_manager_1_clear_signals (NMModemManager *self)
 static void
 clear_modem_manager_1_support (NMModemManager *self)
 {
-	if (self->priv->modem_manager_1_poke_id) {
-		g_source_remove (self->priv->modem_manager_1_poke_id);
-		self->priv->modem_manager_1_poke_id = 0;
+	if (self->priv->modem_manager_1_launch_id) {
+		g_source_remove (self->priv->modem_manager_1_launch_id);
+		self->priv->modem_manager_1_launch_id = 0;
 	}
 
 	modem_manager_1_clear_signals (self);
@@ -545,15 +545,20 @@ modem_manager_1_name_owner_changed (MMManager *modem_manager_1,
 	gchar *name_owner;
 
 	/* Quit poking, if any */
-	if (self->priv->modem_manager_1_poke_id) {
-		g_source_remove (self->priv->modem_manager_1_poke_id);
-		self->priv->modem_manager_1_poke_id = 0;
+	if (self->priv->modem_manager_1_launch_id) {
+		g_source_remove (self->priv->modem_manager_1_launch_id);
+		self->priv->modem_manager_1_launch_id = 0;
 	}
 
 	name_owner = g_dbus_object_manager_client_get_name_owner (G_DBUS_OBJECT_MANAGER_CLIENT (modem_manager_1));
 	if (!name_owner) {
 		nm_log_info (LOGD_MB, "ModemManager disappeared from bus");
+
+#if !HAVE_SYSTEMD
+		/* If not managed by systemd, schedule relaunch */
 		schedule_modem_manager_1_relaunch (self, 0);
+#endif
+
 		return;
 	}
 
@@ -573,6 +578,8 @@ modem_manager_1_name_owner_changed (MMManager *modem_manager_1,
 	 */
 }
 
+#if !HAVE_SYSTEMD
+
 static void
 modem_manager_1_poke_cb (GDBusConnection *connection,
                          GAsyncResult *res,
@@ -606,18 +613,7 @@ modem_manager_1_poke_cb (GDBusConnection *connection,
 static void
 modem_manager_1_poke (NMModemManager *self)
 {
-	gchar *name_owner;
-
 	/* If there is no current owner right away, ensure we poke to get one */
-	name_owner = g_dbus_object_manager_client_get_name_owner (G_DBUS_OBJECT_MANAGER_CLIENT (self->priv->modem_manager_1));
-	if (name_owner) {
-		/* Available! */
-		modem_manager_1_available (self);
-		g_free (name_owner);
-		return;
-	}
-
-	/* Poke! */
 	g_dbus_connection_call (self->priv->dbus_connection,
 	                        "org.freedesktop.ModemManager1",
 	                        "/org/freedesktop/ModemManager1",
@@ -632,6 +628,27 @@ modem_manager_1_poke (NMModemManager *self)
 	                        g_object_ref (self)); /* user_data */
 }
 
+#endif /* HAVE_SYSTEMD */
+
+static void
+modem_manager_1_check_name_owner (NMModemManager *self)
+{
+	gchar *name_owner;
+
+	name_owner = g_dbus_object_manager_client_get_name_owner (G_DBUS_OBJECT_MANAGER_CLIENT (self->priv->modem_manager_1));
+	if (name_owner) {
+		/* Available! */
+		modem_manager_1_available (self);
+		g_free (name_owner);
+		return;
+	}
+
+#if !HAVE_SYSTEMD
+	/* If the lifecycle is not managed by systemd, poke */
+	modem_manager_1_poke (self);
+#endif
+}
+
 static void
 manager_new_ready (GObject *source,
                    GAsyncResult *res,
@@ -671,8 +688,8 @@ manager_new_ready (GObject *source,
 			                  "object-removed",
 			                  G_CALLBACK (modem_object_removed),
 			                  self);
-		/* Poke the MMManager! */
-		modem_manager_1_poke (self);
+
+		modem_manager_1_check_name_owner (self);
 	}
 
 	/* Balance refcount */
@@ -696,8 +713,8 @@ ensure_client (NMModemManager *self)
 		return;
 	}
 
-	/* If already available, poke! */
-	modem_manager_1_poke (self);
+	/* If already available, recheck name owner! */
+	modem_manager_1_check_name_owner (self);
 }
 
 static void
@@ -719,7 +736,7 @@ bus_get_ready (GObject *source,
 		/* If we found the old MM, abort */
 		clear_modem_manager_1_support (self);
 	} else {
-		/* Got the bus, create new ModemManager client. */
+		/* Got the bus, ensure client */
 		ensure_client (self);
 	}
 
@@ -730,8 +747,8 @@ bus_get_ready (GObject *source,
 static gboolean
 ensure_bus (NMModemManager *self)
 {
-	/* Clear poke ID */
-	self->priv->modem_manager_1_poke_id = 0;
+	/* Clear launch ID */
+	self->priv->modem_manager_1_launch_id = 0;
 
 	if (!self->priv->dbus_connection)
 		g_bus_get (G_BUS_TYPE_SYSTEM,
@@ -753,9 +770,9 @@ schedule_modem_manager_1_relaunch (NMModemManager *self,
 	 * cancelled if the object gets disposed. */
 
 	if (n_seconds)
-		self->priv->modem_manager_1_poke_id = g_timeout_add_seconds (n_seconds, (GSourceFunc)ensure_bus, self);
+		self->priv->modem_manager_1_launch_id = g_timeout_add_seconds (n_seconds, (GSourceFunc)ensure_bus, self);
 	else
-		self->priv->modem_manager_1_poke_id = g_idle_add ((GSourceFunc)ensure_bus, self);
+		self->priv->modem_manager_1_launch_id = g_idle_add ((GSourceFunc)ensure_bus, self);
 }
 
 #endif /* WITH_MODEM_MANAGER_1 */
diff --git a/src/nm-device-wifi.c b/src/nm-device-wifi.c
index 3ac34e7f..8ca52780 100644
--- a/src/nm-device-wifi.c
+++ b/src/nm-device-wifi.c
@@ -2422,7 +2422,7 @@ supplicant_iface_state_cb (NMSupplicantInterface *iface,
 		 */
 		if (devstate == NM_DEVICE_STATE_CONFIG) {
 			NMAccessPoint *ap = nm_device_wifi_get_activation_ap (self);
-			const GByteArray *ssid = nm_ap_get_ssid (ap);
+			const GByteArray *ssid = ap ? nm_ap_get_ssid (ap) : NULL;
 
 			nm_log_info (LOGD_DEVICE | LOGD_WIFI,
 			             "Activation (%s/wireless) Stage 2 of 5 (Device Configure) "
@@ -2707,9 +2707,8 @@ supplicant_connection_timeout_cb (gpointer user_data)
 
 	g_assert (priv->mode == NM_802_11_MODE_INFRA);
 	ap = nm_device_wifi_get_activation_ap (self);
-	g_assert (ap);
 
-	if (priv->ssid_found && is_encrypted (ap, connection)) {
+	if (priv->ssid_found && ap && is_encrypted (ap, connection)) {
 		guint64 timestamp = 0;
 		gboolean new_secrets = TRUE;
 
@@ -3086,7 +3085,11 @@ act_stage2_config (NMDevice *dev, NMDeviceStateReason *reason)
 	g_assert (req);
 
 	ap = nm_device_wifi_get_activation_ap (self);
-	g_assert (ap);
+	if (!ap) {
+		nm_log_warn (LOGD_DEVICE | LOGD_WIFI, "act_stage2_config failed due to unexpected missing activation_ap. Abort");
+		*reason = NM_DEVICE_STATE_REASON_SUPPLICANT_DISCONNECT;
+		goto out;
+	}
 
 	connection = nm_act_request_get_connection (req);
 	g_assert (connection);
@@ -3240,6 +3243,8 @@ handle_ip_config_timeout (NMDeviceWifi *self,
 		return ret;
 	}
 
+	ap = nm_device_wifi_get_activation_ap (self);
+
 	/* If IP configuration times out and it's a static WEP connection, that
 	 * usually means the WEP key is wrong.  WEP's Open System auth mode has
 	 * no provision for figuring out if the WEP key is wrong, so you just have
@@ -3247,7 +3252,6 @@ handle_ip_config_timeout (NMDeviceWifi *self,
 	 * types (open, WPA, 802.1x, etc) if the secrets/certs were wrong the
 	 * connection would have failed before IP configuration.
 	 */
-	ap = nm_device_wifi_get_activation_ap (self);
 	if (ap && is_static_wep (ap, connection) && (may_fail == FALSE)) {
 		/* Activation failed, we must have bad encryption key */
 		nm_log_warn (LOGD_DEVICE | LOGD_WIFI,
@@ -3342,7 +3346,7 @@ activation_success_handler (NMDevice *dev)
 	/* If the AP isn't fake, it was found in the scan list and all its
 	 * details are known.
 	 */
-	if (!nm_ap_get_fake (ap))
+	if (!ap || !nm_ap_get_fake (ap))
 		goto done;
 
 	/* If the activate AP was fake, it probably won't have a BSSID at all.
diff --git a/src/nm-device.c b/src/nm-device.c
index 4de1bd9e..a07ef338 100644
--- a/src/nm-device.c
+++ b/src/nm-device.c
@@ -1952,21 +1952,23 @@ dhcp4_state_changed (NMDHCPClient *client,
 	case DHC_REBOOT:     /* have valid lease, but now obtained a different one */
 	case DHC_REBIND4:    /* new, different lease */
 		config = nm_dhcp_client_get_ip4_config (priv->dhcp4_client, FALSE);
-		if (priv->ip4_state == IP_CONF)
-			nm_device_activate_schedule_ip4_config_result (device, config);
-		else if (priv->ip4_state == IP_DONE)
-			dhcp4_lease_change (device, config);
 
+		/* Update the DHCP4 config object with new DHCP options */
+		nm_dhcp4_config_reset (priv->dhcp4_config);
 		if (config) {
-			/* Update the DHCP4 config object with new DHCP options */
-			nm_dhcp4_config_reset (priv->dhcp4_config);
 			nm_dhcp_client_foreach_option (priv->dhcp4_client,
 			                               dhcp4_add_option_cb,
 			                               priv->dhcp4_config);
-			g_object_notify (G_OBJECT (device), NM_DEVICE_DHCP4_CONFIG);
+		}
+		g_object_notify (G_OBJECT (device), NM_DEVICE_DHCP4_CONFIG);
 
+		if (priv->ip4_state == IP_CONF)
+			nm_device_activate_schedule_ip4_config_result (device, config);
+		else if (priv->ip4_state == IP_DONE)
+			dhcp4_lease_change (device, config);
+
+		if (config)
 			g_object_unref (config);
-		}
 		break;
 	case DHC_TIMEOUT: /* timed out contacting DHCP server */
 		dhcp4_fail (device, TRUE);
@@ -2395,19 +2397,20 @@ dhcp6_state_changed (NMDHCPClient *client,
 		if (priv->dhcp6_ip6_config)
 			g_object_unref (priv->dhcp6_ip6_config);
 		priv->dhcp6_ip6_config = nm_dhcp_client_get_ip6_config (priv->dhcp6_client, FALSE);
-		if (priv->ip6_state == IP_CONF)
-			nm_device_activate_schedule_ip6_config_result (device, priv->dhcp6_ip6_config);
-		else if (priv->ip6_state == IP_DONE)
-			dhcp6_lease_change (device);
 
+		/* Update the DHCP6 config object with new DHCP options */
+		nm_dhcp6_config_reset (priv->dhcp6_config);
 		if (priv->dhcp6_ip6_config) {
-			/* Update the DHCP6 config object with new DHCP options */
-			nm_dhcp6_config_reset (priv->dhcp6_config);
 			nm_dhcp_client_foreach_option (priv->dhcp6_client,
 			                               dhcp6_add_option_cb,
 			                               priv->dhcp6_config);
-			g_object_notify (G_OBJECT (device), NM_DEVICE_DHCP6_CONFIG);
 		}
+		g_object_notify (G_OBJECT (device), NM_DEVICE_DHCP6_CONFIG);
+
+		if (priv->ip6_state == IP_CONF)
+			nm_device_activate_schedule_ip6_config_result (device, priv->dhcp6_ip6_config);
+		else if (priv->ip6_state == IP_DONE)
+			dhcp6_lease_change (device);
 		break;
 	case DHC_TIMEOUT: /* timed out contacting DHCP server */
 		dhcp6_fail (device, TRUE);
@@ -3608,8 +3611,8 @@ clear_act_request (NMDevice *self)
 
 	nm_active_connection_set_default (NM_ACTIVE_CONNECTION (priv->act_request), FALSE);
 
-	g_object_unref (priv->act_request);
-	priv->act_request = NULL;
+	g_clear_object (&priv->act_request);
+	g_object_notify (G_OBJECT (self), NM_DEVICE_ACTIVE_CONNECTION);
 }
 
 static void
@@ -3858,6 +3861,7 @@ disconnect_cb (NMDevice *device,
 static void
 impl_device_disconnect (NMDevice *device, DBusGMethodInvocation *context)
 {
+	NMConnection *connection;
 	GError *error = NULL;
 
 	if (NM_DEVICE_GET_PRIVATE (device)->act_request == NULL) {
@@ -3869,9 +3873,13 @@ impl_device_disconnect (NMDevice *device, DBusGMethodInvocation *context)
 		return;
 	}
 
+	connection = nm_device_get_connection (device);
+	g_assert (connection);
+
 	/* Ask the manager to authenticate this request for us */
 	g_signal_emit (device, signals[AUTH_REQUEST], 0,
 	               context,
+	               connection,
 	               NM_AUTH_PERMISSION_NETWORK_CONTROL,
 	               TRUE,
 	               disconnect_cb,
@@ -4836,9 +4844,9 @@ nm_device_class_init (NMDeviceClass *klass)
 		              G_OBJECT_CLASS_TYPE (object_class),
 		              G_SIGNAL_RUN_FIRST,
 		              0, NULL, NULL,
-		              /* dbus-glib context, permission, allow_interaction, callback, user_data */
-		              _nm_marshal_VOID__POINTER_STRING_BOOLEAN_POINTER_POINTER,
-		              G_TYPE_NONE, 5, G_TYPE_POINTER, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_POINTER, G_TYPE_POINTER);
+		              /* dbus-glib context, connection, permission, allow_interaction, callback, user_data */
+		              _nm_marshal_VOID__POINTER_POINTER_STRING_BOOLEAN_POINTER_POINTER,
+		              G_TYPE_NONE, 6, G_TYPE_POINTER, G_TYPE_POINTER, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_POINTER, G_TYPE_POINTER);
 
 	signals[IP4_CONFIG_CHANGED] =
 		g_signal_new (NM_DEVICE_IP4_CONFIG_CHANGED,
diff --git a/src/nm-manager.c b/src/nm-manager.c
index 9c82d145..9037e649 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -222,6 +222,7 @@ typedef struct {
 	guint          dbus_connection_changed_id;
 	NMUdevManager *udev_mgr;
 	NMBluezManager *bluez_mgr;
+	NMSessionMonitor *session_monitor;
 
 	/* List of NMDeviceFactoryFunc pointers sorted in priority order */
 	GSList *factories;
@@ -583,6 +584,7 @@ checked_connectivity (GObject *object, GAsyncResult *result, gpointer user_data)
 		else if (   connectivity == NM_CONNECTIVITY_PORTAL
 		         || connectivity == NM_CONNECTIVITY_LIMITED)
 			set_state (manager, NM_STATE_CONNECTED_SITE);
+		g_object_notify (G_OBJECT (manager), NM_MANAGER_CONNECTIVITY);
 	}
 
 	g_object_unref (manager);
@@ -940,16 +942,18 @@ static void
 pending_activation_check_authorized (PendingActivation *pending,
                                      NMDBusManager *dbus_mgr)
 {
+	NMManagerPrivate *priv;
 	char *error_desc = NULL;
 	gulong sender_uid = G_MAXULONG;
 	GError *error;
 	const char *wifi_permission = NULL;
 	NMConnection *connection;
-	NMSettings *settings;
 
 	g_return_if_fail (pending != NULL);
 	g_return_if_fail (dbus_mgr != NULL);
 
+	priv = NM_MANAGER_GET_PRIVATE (pending->manager);
+
 	if (!nm_auth_get_caller_uid (pending->context, 
 	                             dbus_mgr,
 	                             &sender_uid,
@@ -973,10 +977,8 @@ pending_activation_check_authorized (PendingActivation *pending,
 	 * or an existing connection (for Activate).
 	 */
 	connection = pending->connection;
-	if (!connection) {
-		settings = NM_MANAGER_GET_PRIVATE (pending->manager)->settings;
-		connection = (NMConnection *) nm_settings_get_connection_by_path (settings, pending->connection_path);
-	}
+	if (!connection)
+		connection = (NMConnection *) nm_settings_get_connection_by_path (priv->settings, pending->connection_path);
 
 	if (!connection) {
 		error = g_error_new_literal (NM_MANAGER_ERROR,
@@ -987,6 +989,20 @@ pending_activation_check_authorized (PendingActivation *pending,
 		return;
 	}
 
+	/* Ensure the subject has permissions for this connection */
+	if (!nm_auth_uid_in_acl (connection,
+	                         priv->session_monitor,
+	                         sender_uid,
+	                         &error_desc)) {
+		error = g_error_new_literal (NM_MANAGER_ERROR,
+		                             NM_MANAGER_ERROR_PERMISSION_DENIED,
+		                             error_desc);
+		pending->callback (pending, error);
+		g_error_free (error);
+		g_free (error_desc);
+		return;
+	}
+
 	/* First check if the user is allowed to use networking at all, giving
 	 * the user a chance to authenticate to gain the permission.
 	 */
@@ -1304,8 +1320,8 @@ system_create_virtual_device (NMManager *self, NMConnection *connection)
 
 	iface = get_virtual_iface_name (self, connection, &parent);
 	if (!iface) {
-		nm_log_warn (LOGD_DEVICE, "(%s) failed to determine virtual interface name",
-		             nm_connection_get_id (connection));
+		nm_log_dbg (LOGD_DEVICE, "(%s) failed to determine virtual interface name",
+		            nm_connection_get_id (connection));
 		return NULL;
 	}
 
@@ -1833,6 +1849,7 @@ device_auth_done_cb (NMAuthChain *chain,
 static void
 device_auth_request_cb (NMDevice *device,
                         DBusGMethodInvocation *context,
+                        NMConnection *connection,
                         const char *permission,
                         gboolean allow_interaction,
                         NMDeviceAuthRequestFunc callback,
@@ -1856,6 +1873,20 @@ device_auth_request_cb (NMDevice *device,
 		return;
 	}
 
+	/* Ensure the subject has permissions for this connection */
+	if (!nm_auth_uid_in_acl (connection,
+	                         priv->session_monitor,
+	                         sender_uid,
+	                         &error_desc)) {
+		error = g_error_new_literal (NM_MANAGER_ERROR,
+		                             NM_MANAGER_ERROR_PERMISSION_DENIED,
+		                             error_desc);
+		callback (device, context, error, user_data);
+		g_error_free (error);
+		g_free (error_desc);
+		return;
+	}
+
 	/* Yay for root */
 	if (0 == sender_uid)
 		callback (device, context, NULL, user_data);
@@ -2007,9 +2038,7 @@ add_device (NMManager *self, NMDevice *device)
 		            nm_device_get_iface (device));
 
 		ac = internal_activate_device (self, device, existing, NULL, FALSE, 0, NULL, TRUE, NULL, &error);
-		if (ac)
-			active_connection_add (self, ac);
-		else {
+		if (!ac) {
 			nm_log_warn (LOGD_DEVICE, "assumed connection %s failed to activate: (%d) %s",
 			             nm_connection_get_path (existing),
 			             error ? error->code : -1,
@@ -2518,6 +2547,7 @@ internal_activate_device (NMManager *manager,
 	                          device,
 	                          master_device);
 	g_assert (req);
+	active_connection_add (manager, NM_ACTIVE_CONNECTION (req));
 	nm_device_activate (device, req);
 
 	return NM_ACTIVE_CONNECTION (req);
@@ -2795,7 +2825,7 @@ activate_vpn_connection (NMManager *self,
                          GError **error)
 {
 	NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self);
-	NMActiveConnection *parent = NULL;
+	NMActiveConnection *parent = NULL, *ac;
 	NMDevice *device = NULL;
 	GSList *iter;
 
@@ -2831,13 +2861,16 @@ activate_vpn_connection (NMManager *self,
 		return NULL;
 	}
 
-	return nm_vpn_manager_activate_connection (priv->vpn_manager,
-	                                           connection,
-	                                           device,
-	                                           nm_active_connection_get_path (parent),
-	                                           TRUE,
-	                                           sender_uid,
-	                                           error);
+	ac = nm_vpn_manager_activate_connection (priv->vpn_manager,
+	                                         connection,
+	                                         device,
+	                                         nm_active_connection_get_path (parent),
+	                                         TRUE,
+	                                         sender_uid,
+	                                         error);
+	if (ac)
+		active_connection_add (self, ac);
+	return ac;
 }
 
 NMActiveConnection *
@@ -2856,8 +2889,10 @@ nm_manager_activate_connection (NMManager *manager,
 	char *iface;
 	NMDevice *master_device = NULL;
 	NMConnection *master_connection = NULL;
-	NMActiveConnection *master_ac = NULL, *ac = NULL;
+	NMConnection *existing_connection = NULL;
+	NMActiveConnection *master_ac = NULL;
 	gboolean matched;
+	char *error_desc = NULL;
 
 	g_return_val_if_fail (manager != NULL, NULL);
 	g_return_val_if_fail (connection != NULL, NULL);
@@ -2879,13 +2914,24 @@ nm_manager_activate_connection (NMManager *manager,
 			dbus_error_free (&dbus_error);
 			return NULL;
 		}
+
+		/* Ensure the subject has permissions for this connection */
+		if (!nm_auth_uid_in_acl (connection,
+		                         priv->session_monitor,
+		                         sender_uid,
+		                         &error_desc)) {
+			g_set_error_literal (error,
+			                     NM_MANAGER_ERROR,
+			                     NM_MANAGER_ERROR_PERMISSION_DENIED,
+			                     error_desc);
+			g_free (error_desc);
+			return NULL;
+		}
 	}
 
 	/* VPN ? */
-	if (nm_connection_is_type (connection, NM_SETTING_VPN_SETTING_NAME)) {
-		ac = activate_vpn_connection (manager, connection, specific_object, sender_uid, error);
-		goto activated;
-	}
+	if (nm_connection_is_type (connection, NM_SETTING_VPN_SETTING_NAME))
+		return activate_vpn_connection (manager, connection, specific_object, sender_uid, error);
 
 	/* Device-based connection */
 	if (device_path) {
@@ -2975,6 +3021,28 @@ nm_manager_activate_connection (NMManager *manager,
 		return NULL;
 	}
 
+	if (dbus_sender) {
+		/* If the device is active and its connection is not visible to the
+		 * user that's requesting this new activation, fail, since other users
+		 * should not be allowed to implicitly deactivate private connections
+		 * by activating a connection of their own.
+		 */
+		existing_connection = nm_device_get_connection (device);
+		if (existing_connection &&
+		    !nm_auth_uid_in_acl (existing_connection,
+		                         priv->session_monitor,
+		                         sender_uid,
+		                         &error_desc)) {
+			g_set_error (error,
+			             NM_MANAGER_ERROR,
+			             NM_MANAGER_ERROR_PERMISSION_DENIED,
+			             "Private connection already active on the device: %s",
+			             error_desc);
+			g_free (error_desc);
+			return FALSE;
+		}
+	}
+
 	/* Try to find the master connection/device if the connection has a dependency */
 	if (!find_master (manager, connection, device, &master_connection, &master_device)) {
 		g_set_error_literal (error, NM_MANAGER_ERROR, NM_MANAGER_ERROR_UNKNOWN_DEVICE,
@@ -3022,22 +3090,16 @@ nm_manager_activate_connection (NMManager *manager,
 		            nm_active_connection_get_path (master_ac));
 	}
 
-	ac = internal_activate_device (manager,
-	                               device,
-	                               connection,
-	                               specific_object,
-	                               dbus_sender ? TRUE : FALSE,
-	                               dbus_sender ? sender_uid : 0,
-	                               dbus_sender,
-	                               FALSE,
-	                               master_ac,
-	                               error);
-
-activated:
-	if (ac)
-		active_connection_add (manager, ac);
-
-	return ac;
+	return internal_activate_device (manager,
+	                                 device,
+	                                 connection,
+	                                 specific_object,
+	                                 dbus_sender ? TRUE : FALSE,
+	                                 dbus_sender ? sender_uid : 0,
+	                                 dbus_sender,
+	                                 FALSE,
+	                                 master_ac,
+	                                 error);
 }
 
 /* 
@@ -3329,6 +3391,20 @@ impl_manager_deactivate_connection (NMManager *self,
 		return;
 	}
 
+	/* Ensure the subject has permissions for this connection */
+	if (!nm_auth_uid_in_acl (connection,
+	                         priv->session_monitor,
+	                         sender_uid,
+	                         &error_desc)) {
+		error = g_error_new_literal (NM_MANAGER_ERROR,
+		                             NM_MANAGER_ERROR_PERMISSION_DENIED,
+		                             error_desc);
+		dbus_g_method_return_error (context, error);
+		g_error_free (error);
+		g_free (error_desc);
+		return;
+	}
+
 	/* Yay for root */
 	if (0 == sender_uid) {
 		if (!nm_manager_deactivate_connection (self,
@@ -3997,6 +4073,7 @@ connectivity_changed (NMConnectivity *connectivity,
 	            connectivity_states[state]);
 
 	nm_manager_update_state (self);
+	g_object_notify (G_OBJECT (self), NM_MANAGER_CONNECTIVITY);
 }
 
 static void
@@ -4396,6 +4473,8 @@ nm_manager_new (NMSettings *settings,
 	                  G_CALLBACK (bluez_manager_bdaddr_removed_cb),
 	                  singleton);
 
+	priv->session_monitor = nm_session_monitor_get ();
+
 	/* Force kernel WiFi rfkill state to follow NM saved wifi state in case
 	 * the BIOS doesn't save rfkill state, and to be consistent with user
 	 * changes to the WirelessEnabled property which toggles kernel rfkill.
@@ -4465,6 +4544,7 @@ dispose (GObject *object)
 
 	g_object_unref (priv->settings);
 	g_object_unref (priv->vpn_manager);
+	g_object_unref (priv->session_monitor);
 
 	if (priv->modem_added_id) {
 		g_source_remove (priv->modem_added_id);
diff --git a/src/nm-policy.c b/src/nm-policy.c
index e8e7c606..f95caf93 100644
--- a/src/nm-policy.c
+++ b/src/nm-policy.c
@@ -97,16 +97,14 @@ static void schedule_activate_all (NMPolicy *policy);
 
 
 static NMDevice *
-get_best_ip4_device (NMManager *manager, gboolean fully_activated)
+get_best_ip4_device (NMPolicy *self, gboolean fully_activated)
 {
+	NMPolicyPrivate *priv = NM_POLICY_GET_PRIVATE (self);
 	GSList *devices, *iter;
 	NMDevice *best = NULL;
 	int best_prio = G_MAXINT;
 
-	g_return_val_if_fail (manager != NULL, NULL);
-	g_return_val_if_fail (NM_IS_MANAGER (manager), NULL);
-
-	devices = nm_manager_get_devices (manager);
+	devices = nm_manager_get_devices (priv->manager);
 	for (iter = devices; iter; iter = g_slist_next (iter)) {
 		NMDevice *dev = NM_DEVICE (iter->data);
 		NMDeviceType devtype = nm_device_get_device_type (dev);
@@ -167,7 +165,9 @@ get_best_ip4_device (NMManager *manager, gboolean fully_activated)
 		}
 
 		prio = nm_device_get_priority (dev);
-		if (prio > 0 && prio < best_prio) {
+		if (   prio < best_prio
+		    || (priv->default_device4 == dev && prio == best_prio)
+		    || !best) {
 			best = dev;
 			best_prio = prio;
 		}
@@ -191,16 +191,14 @@ get_best_ip4_device (NMManager *manager, gboolean fully_activated)
 }
 
 static NMDevice *
-get_best_ip6_device (NMManager *manager, gboolean fully_activated)
+get_best_ip6_device (NMPolicy *self, gboolean fully_activated)
 {
+	NMPolicyPrivate *priv = NM_POLICY_GET_PRIVATE (self);
 	GSList *devices, *iter;
 	NMDevice *best = NULL;
 	int best_prio = G_MAXINT;
 
-	g_return_val_if_fail (manager != NULL, NULL);
-	g_return_val_if_fail (NM_IS_MANAGER (manager), NULL);
-
-	devices = nm_manager_get_devices (manager);
+	devices = nm_manager_get_devices (priv->manager);
 	for (iter = devices; iter; iter = g_slist_next (iter)) {
 		NMDevice *dev = NM_DEVICE (iter->data);
 		NMDeviceType devtype = nm_device_get_device_type (dev);
@@ -257,7 +255,9 @@ get_best_ip6_device (NMManager *manager, gboolean fully_activated)
 		}
 
 		prio = nm_device_get_priority (dev);
-		if (prio > 0 && prio < best_prio) {
+		if (   prio < best_prio
+		    || (priv->default_device6 == dev && prio == best_prio)
+		    || !best) {
 			best = dev;
 			best_prio = prio;
 		}
@@ -383,9 +383,9 @@ update_system_hostname (NMPolicy *policy, NMDevice *best4, NMDevice *best6)
 
 	/* Try automatically determined hostname from the best device's IP config */
 	if (!best4)
-		best4 = get_best_ip4_device (priv->manager, TRUE);
+		best4 = get_best_ip4_device (policy, TRUE);
 	if (!best6)
-		best6 = get_best_ip6_device (priv->manager, TRUE);
+		best6 = get_best_ip6_device (policy, TRUE);
 
 	if (!best4 && !best6) {
 		/* No best device; fall back to original hostname or if there wasn't
@@ -582,7 +582,7 @@ get_best_ip4_config (NMPolicy *policy,
 
 	/* If no VPN connections, we use the best device instead */
 	if (!ip4_config) {
-		device = get_best_ip4_device (priv->manager, TRUE);
+		device = get_best_ip4_device (policy, TRUE);
 		if (device) {
 			ip4_config = nm_device_get_ip4_config (device);
 			g_assert (ip4_config);
@@ -627,7 +627,7 @@ static void
 update_ip4_routing (NMPolicy *policy, gboolean force_update)
 {
 	NMPolicyPrivate *priv = NM_POLICY_GET_PRIVATE (policy);
-	NMDevice *best = NULL, *parent;
+	NMDevice *best = NULL, *parent, *default_device;
 	NMConnection *connection = NULL;
 	NMVPNConnection *vpn = NULL;
 	NMActiveConnection *best_ac = NULL;
@@ -680,15 +680,20 @@ update_ip4_routing (NMPolicy *policy, gboolean force_update)
 		                                         nm_ip4_config_get_mss (ip4_config),
 		                                         nm_device_get_ip_ifindex (parent),
 		                                         parent_mss);
+		default_device = parent;
 	} else {
 		nm_system_replace_default_ip4_route (ip_ifindex,
 		                                     gw_addr,
 		                                     nm_ip4_config_get_mss (ip4_config));
+		default_device = best;
 	}
 
 	update_default_ac (policy, best_ac, nm_active_connection_set_default);
-	priv->default_device4 = best;
 
+	if (default_device == priv->default_device4)
+		return;
+
+	priv->default_device4 = default_device;
 	connection = nm_active_connection_get_connection (best_ac);
 	nm_log_info (LOGD_CORE, "Policy set '%s' (%s) as default for IPv4 routing and DNS.",
 	             nm_connection_get_id (connection), ip_iface);
@@ -761,7 +766,7 @@ get_best_ip6_config (NMPolicy *policy,
 
 	/* If no VPN connections, we use the best device instead */
 	if (!ip6_config) {
-		device = get_best_ip6_device (priv->manager, TRUE);
+		device = get_best_ip6_device (policy, TRUE);
 		if (device) {
 			req = nm_device_get_act_request (device);
 			g_assert (req);
@@ -806,7 +811,7 @@ static void
 update_ip6_routing (NMPolicy *policy, gboolean force_update)
 {
 	NMPolicyPrivate *priv = NM_POLICY_GET_PRIVATE (policy);
-	NMDevice *best = NULL, *parent;
+	NMDevice *best = NULL, *parent, *default_device6;
 	NMConnection *connection = NULL;
 	NMVPNConnection *vpn = NULL;
 	NMActiveConnection *best_ac = NULL;
@@ -868,16 +873,21 @@ update_ip6_routing (NMPolicy *policy, gboolean force_update)
 		                                         nm_ip6_config_get_mss (ip6_config),
 		                                         nm_device_get_ip_ifindex (parent),
 		                                         parent_mss);
+		default_device6 = parent;
 	} else {
 		if (gw_addr)
 			nm_system_replace_default_ip6_route (ip_ifindex, gw_addr);
 		else
 			nm_log_dbg (LOGD_IP6, "missing default IPv6 gateway");
+		default_device6 = best;
 	}
 
 	update_default_ac (policy, best_ac, nm_active_connection_set_default6);
-	priv->default_device6 = best;
 
+	if (default_device6 == priv->default_device6)
+		return;
+
+	priv->default_device6 = default_device6;
 	connection = nm_active_connection_get_connection (best_ac);
 	nm_log_info (LOGD_CORE, "Policy set '%s' (%s) as default for IPv6 routing and DNS.",
 	             nm_connection_get_id (connection), ip_iface);
@@ -913,8 +923,8 @@ check_activating_devices (NMPolicy *policy)
 	GObject *object = G_OBJECT (policy);
 	NMDevice *best4, *best6 = NULL;
 
-	best4 = get_best_ip4_device (priv->manager, FALSE);
-	best6 = get_best_ip6_device (priv->manager, FALSE);
+	best4 = get_best_ip4_device (policy, FALSE);
+	best6 = get_best_ip6_device (policy, FALSE);
 
 	g_object_freeze_notify (object);
 
diff --git a/src/nm-system.c b/src/nm-system.c
index 7f6de912..39983424 100644
--- a/src/nm-system.c
+++ b/src/nm-system.c
@@ -1696,15 +1696,15 @@ nm_system_bond_enslave (gint master_ifindex,
 	g_assert (!nm_system_iface_is_up (slave_ifindex));
 
 	if (nm_system_iface_get_flags (slave_ifindex) & IFF_SLAVE) {
-		struct rtnl_link *link;
+		struct rtnl_link *lk;
 		int existing_master = -1;
 
 		/* Get the ifindex of the existing master device */
-		link = nm_netlink_index_to_rtnl_link (slave_ifindex);
-		g_warn_if_fail (link != NULL);
-		if (link) {
-			existing_master = rtnl_link_get_master (link);
-			rtnl_link_put (link);
+		lk = nm_netlink_index_to_rtnl_link (slave_ifindex);
+		g_warn_if_fail (lk != NULL);
+		if (lk) {
+			existing_master = rtnl_link_get_master (lk);
+			rtnl_link_put (lk);
 		}
 
 		if (existing_master > 0) {
diff --git a/src/org.freedesktop.NetworkManager.conf b/src/org.freedesktop.NetworkManager.conf
index 5e7bafa1..db68374c 100644
--- a/src/org.freedesktop.NetworkManager.conf
+++ b/src/org.freedesktop.NetworkManager.conf
@@ -24,6 +24,7 @@
                 <allow send_destination="org.freedesktop.NetworkManager.pptp"/>
                 <allow send_destination="org.freedesktop.NetworkManager.vpnc"/>
                 <allow send_destination="org.freedesktop.NetworkManager.ssh"/>
+                <allow send_destination="org.freedesktop.NetworkManager.iodine"/>
         </policy>
         <policy at_console="true">
                 <allow send_destination="org.freedesktop.NetworkManager"/>
diff --git a/src/posix-signals/Makefile.in b/src/posix-signals/Makefile.in
index 524382af..e824a138 100644
--- a/src/posix-signals/Makefile.in
+++ b/src/posix-signals/Makefile.in
@@ -203,6 +203,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -225,6 +226,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
diff --git a/src/ppp-manager/Makefile.am b/src/ppp-manager/Makefile.am
index 7e8102a5..4ad4ff81 100644
--- a/src/ppp-manager/Makefile.am
+++ b/src/ppp-manager/Makefile.am
@@ -1,4 +1,4 @@
-INCLUDES = \
+AM_CPPFLAGS = \
 	-I${top_srcdir} \
 	-I${top_builddir}/include \
 	-I${top_srcdir}/include \
@@ -8,7 +8,9 @@ INCLUDES = \
 	-I${top_builddir}/src/generated \
 	-I${top_srcdir}/src/generated \
 	-I${top_srcdir}/src/logging \
-	-I${top_srcdir}/src/posix-signals
+	-I${top_srcdir}/src/posix-signals \
+	$(DBUS_CFLAGS) \
+	$(GLIB_CFLAGS)
 
 noinst_LTLIBRARIES = libppp-manager.la
 
@@ -25,7 +27,7 @@ built_sources = nm-ppp-manager-glue.h
 $(libppp_manager_la_OBJECTS): $(built_sources)
 
 libppp_manager_la_CPPFLAGS = \
-	$(DBUS_CFLAGS) \
+	$(AM_CPPFLAGS) \
 	-DSYSCONFDIR=\"$(sysconfdir)\" \
 	-DLIBDIR=\"$(libdir)\" \
 	-DPLUGINDIR=\"$(PPPD_PLUGIN_DIR)\"
@@ -47,10 +49,6 @@ nm_pppd_plugin_la_SOURCES = \
 	nm-pppd-plugin.h \
 	nm-ppp-status.h
 
-nm_pppd_plugin_la_CPPFLAGS = \
-	$(DBUS_CFLAGS) \
-	$(GLIB_CFLAGS)
-
 nm_pppd_plugin_la_LDFLAGS = -module -avoid-version
 
 nm_pppd_plugin_la_LIBADD = \
diff --git a/src/ppp-manager/Makefile.in b/src/ppp-manager/Makefile.in
index ac531413..97465f0c 100644
--- a/src/ppp-manager/Makefile.in
+++ b/src/ppp-manager/Makefile.in
@@ -146,8 +146,7 @@ am__v_lt_1 =
 @WITH_PPP_TRUE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am__nm_pppd_plugin_la_SOURCES_DIST = nm-pppd-plugin.c nm-pppd-plugin.h \
 	nm-ppp-status.h
-@WITH_PPP_TRUE@am_nm_pppd_plugin_la_OBJECTS =  \
-@WITH_PPP_TRUE@	nm_pppd_plugin_la-nm-pppd-plugin.lo
+@WITH_PPP_TRUE@am_nm_pppd_plugin_la_OBJECTS = nm-pppd-plugin.lo
 nm_pppd_plugin_la_OBJECTS = $(am_nm_pppd_plugin_la_OBJECTS)
 nm_pppd_plugin_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -248,6 +247,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -270,6 +270,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -454,7 +455,7 @@ with_dhclient = @with_dhclient@
 with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
-INCLUDES = \
+AM_CPPFLAGS = \
 	-I${top_srcdir} \
 	-I${top_builddir}/include \
 	-I${top_srcdir}/include \
@@ -464,7 +465,9 @@ INCLUDES = \
 	-I${top_builddir}/src/generated \
 	-I${top_srcdir}/src/generated \
 	-I${top_srcdir}/src/logging \
-	-I${top_srcdir}/src/posix-signals
+	-I${top_srcdir}/src/posix-signals \
+	$(DBUS_CFLAGS) \
+	$(GLIB_CFLAGS)
 
 noinst_LTLIBRARIES = libppp-manager.la
 libppp_manager_la_SOURCES = \
@@ -474,7 +477,7 @@ libppp_manager_la_SOURCES = \
 
 built_sources = nm-ppp-manager-glue.h
 libppp_manager_la_CPPFLAGS = \
-	$(DBUS_CFLAGS) \
+	$(AM_CPPFLAGS) \
 	-DSYSCONFDIR=\"$(sysconfdir)\" \
 	-DLIBDIR=\"$(libdir)\" \
 	-DPLUGINDIR=\"$(PPPD_PLUGIN_DIR)\"
@@ -493,10 +496,6 @@ libppp_manager_la_LIBADD = \
 @WITH_PPP_TRUE@	nm-pppd-plugin.h \
 @WITH_PPP_TRUE@	nm-ppp-status.h
 
-@WITH_PPP_TRUE@nm_pppd_plugin_la_CPPFLAGS = \
-@WITH_PPP_TRUE@	$(DBUS_CFLAGS) \
-@WITH_PPP_TRUE@	$(GLIB_CFLAGS)
-
 @WITH_PPP_TRUE@nm_pppd_plugin_la_LDFLAGS = -module -avoid-version
 @WITH_PPP_TRUE@nm_pppd_plugin_la_LIBADD = \
 @WITH_PPP_TRUE@	$(top_builddir)/libnm-util/libnm-util.la \
@@ -600,7 +599,7 @@ distclean-compile:
 	-rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libppp_manager_la-nm-ppp-manager.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm_pppd_plugin_la-nm-pppd-plugin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm-pppd-plugin.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -630,13 +629,6 @@ libppp_manager_la-nm-ppp-manager.lo: nm-ppp-manager.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libppp_manager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libppp_manager_la-nm-ppp-manager.lo `test -f 'nm-ppp-manager.c' || echo '$(srcdir)/'`nm-ppp-manager.c
 
-nm_pppd_plugin_la-nm-pppd-plugin.lo: nm-pppd-plugin.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_pppd_plugin_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nm_pppd_plugin_la-nm-pppd-plugin.lo -MD -MP -MF $(DEPDIR)/nm_pppd_plugin_la-nm-pppd-plugin.Tpo -c -o nm_pppd_plugin_la-nm-pppd-plugin.lo `test -f 'nm-pppd-plugin.c' || echo '$(srcdir)/'`nm-pppd-plugin.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/nm_pppd_plugin_la-nm-pppd-plugin.Tpo $(DEPDIR)/nm_pppd_plugin_la-nm-pppd-plugin.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='nm-pppd-plugin.c' object='nm_pppd_plugin_la-nm-pppd-plugin.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(nm_pppd_plugin_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nm_pppd_plugin_la-nm-pppd-plugin.lo `test -f 'nm-pppd-plugin.c' || echo '$(srcdir)/'`nm-pppd-plugin.c
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
diff --git a/src/settings/Makefile.am b/src/settings/Makefile.am
index 6ca7633f..ea81a7c4 100644
--- a/src/settings/Makefile.am
+++ b/src/settings/Makefile.am
@@ -1,6 +1,7 @@
 SUBDIRS = plugins . tests
 
-INCLUDES = -I${top_srcdir} \
+AM_CPPFLAGS = \
+           -I${top_srcdir} \
            -I${top_builddir}/include \
            -I${top_srcdir}/include \
            -I${top_builddir}/libnm-util \
@@ -8,7 +9,9 @@ INCLUDES = -I${top_srcdir} \
            -I${top_builddir}/src/generated \
            -I${top_srcdir}/src/generated \
            -I${top_srcdir}/src/logging \
-           -I${top_srcdir}/src
+           -I${top_srcdir}/src \
+           $(DBUS_CFLAGS) \
+           $(GLIB_CFLAGS)
 
 noinst_LTLIBRARIES = libsettings.la libtest-settings-utils.la
 
@@ -16,10 +19,6 @@ libtest_settings_utils_la_SOURCES = \
 	nm-settings-utils.c \
 	nm-settings-utils.h
 
-libtest_settings_utils_la_CPPFLAGS = \
-	$(DBUS_CFLAGS) \
-	$(GLIB_CFLAGS)
-
 libtest_settings_utils_la_LIBADD = \
 	$(top_builddir)/libnm-util/libnm-util.la \
 	$(DBUS_LIBS) \
@@ -51,8 +50,7 @@ libsettings_la_SOURCES = \
 	nm-settings-utils.c
 
 libsettings_la_CPPFLAGS = \
-	$(DBUS_CFLAGS) \
-	$(GLIB_CFLAGS) \
+	$(AM_CPPFLAGS) \
 	$(POLKIT_CFLAGS) \
 	-DBINDIR=\"$(bindir)\" \
 	-DSBINDIR=\"$(sbindir)\" \
diff --git a/src/settings/Makefile.in b/src/settings/Makefile.in
index a7d67770..55269361 100644
--- a/src/settings/Makefile.in
+++ b/src/settings/Makefile.in
@@ -130,8 +130,7 @@ libsettings_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 libtest_settings_utils_la_DEPENDENCIES =  \
 	$(top_builddir)/libnm-util/libnm-util.la $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
-am_libtest_settings_utils_la_OBJECTS =  \
-	libtest_settings_utils_la-nm-settings-utils.lo
+am_libtest_settings_utils_la_OBJECTS = nm-settings-utils.lo
 libtest_settings_utils_la_OBJECTS =  \
 	$(am_libtest_settings_utils_la_OBJECTS)
 AM_V_P = $(am__v_P_@AM_V@)
@@ -271,6 +270,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -293,6 +293,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -478,7 +479,8 @@ with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
 SUBDIRS = plugins . tests
-INCLUDES = -I${top_srcdir} \
+AM_CPPFLAGS = \
+           -I${top_srcdir} \
            -I${top_builddir}/include \
            -I${top_srcdir}/include \
            -I${top_builddir}/libnm-util \
@@ -486,17 +488,15 @@ INCLUDES = -I${top_srcdir} \
            -I${top_builddir}/src/generated \
            -I${top_srcdir}/src/generated \
            -I${top_srcdir}/src/logging \
-           -I${top_srcdir}/src
+           -I${top_srcdir}/src \
+           $(DBUS_CFLAGS) \
+           $(GLIB_CFLAGS)
 
 noinst_LTLIBRARIES = libsettings.la libtest-settings-utils.la
 libtest_settings_utils_la_SOURCES = \
 	nm-settings-utils.c \
 	nm-settings-utils.h
 
-libtest_settings_utils_la_CPPFLAGS = \
-	$(DBUS_CFLAGS) \
-	$(GLIB_CFLAGS)
-
 libtest_settings_utils_la_LIBADD = \
 	$(top_builddir)/libnm-util/libnm-util.la \
 	$(DBUS_LIBS) \
@@ -528,8 +528,7 @@ libsettings_la_SOURCES = \
 	nm-settings-utils.c
 
 libsettings_la_CPPFLAGS = \
-	$(DBUS_CFLAGS) \
-	$(GLIB_CFLAGS) \
+	$(AM_CPPFLAGS) \
 	$(POLKIT_CFLAGS) \
 	-DBINDIR=\"$(bindir)\" \
 	-DSBINDIR=\"$(sbindir)\" \
@@ -621,7 +620,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsettings_la-nm-settings-utils.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsettings_la-nm-settings.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsettings_la-nm-system-config-interface.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtest_settings_utils_la-nm-settings-utils.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm-settings-utils.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -707,13 +706,6 @@ libsettings_la-nm-settings-utils.lo: nm-settings-utils.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsettings_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsettings_la-nm-settings-utils.lo `test -f 'nm-settings-utils.c' || echo '$(srcdir)/'`nm-settings-utils.c
 
-libtest_settings_utils_la-nm-settings-utils.lo: nm-settings-utils.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtest_settings_utils_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtest_settings_utils_la-nm-settings-utils.lo -MD -MP -MF $(DEPDIR)/libtest_settings_utils_la-nm-settings-utils.Tpo -c -o libtest_settings_utils_la-nm-settings-utils.lo `test -f 'nm-settings-utils.c' || echo '$(srcdir)/'`nm-settings-utils.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_settings_utils_la-nm-settings-utils.Tpo $(DEPDIR)/libtest_settings_utils_la-nm-settings-utils.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='nm-settings-utils.c' object='libtest_settings_utils_la-nm-settings-utils.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtest_settings_utils_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtest_settings_utils_la-nm-settings-utils.lo `test -f 'nm-settings-utils.c' || echo '$(srcdir)/'`nm-settings-utils.c
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
diff --git a/src/settings/nm-agent-manager.c b/src/settings/nm-agent-manager.c
index 531fabc5..d3635706 100644
--- a/src/settings/nm-agent-manager.c
+++ b/src/settings/nm-agent-manager.c
@@ -74,7 +74,7 @@ static void request_add_agent (Request *req,
                                NMSecretAgent *agent,
                                NMSessionMonitor *session_monitor);
 
-static void request_remove_agent (Request *req, NMSecretAgent *agent);
+static void request_remove_agent (gpointer key, gpointer value, gpointer user_data);
 
 static void impl_agent_manager_register (NMAgentManager *self,
                                          const char *identifier,
@@ -101,13 +101,60 @@ nm_agent_manager_error_quark (void)
 
 /*************************************************************/
 
+/*----------------------------------------------------------------------------*/
+/* GHashTable safe iterating function: x_g_hash_table_safe_for_each()
+ * GHashTable can't be modified while iterating, the common solution for that is
+ * to flatten the hash table first and iterate over list.
+ * Taken from https://github.com/linuxmint/nemo/blob/master/eel/eel-glib-extensions.c
+ */
+typedef struct {
+	GList *keys;
+	GList *values;
+} FlattenedHashTable;
+
+static void
+flatten_hash_table_element (gpointer key, gpointer value, gpointer callback_data)
+{
+	FlattenedHashTable *flattened_table;
+
+	flattened_table = callback_data;
+	flattened_table->keys = g_list_prepend
+	        (flattened_table->keys, key);
+	flattened_table->values = g_list_prepend
+	        (flattened_table->values, value);
+}
+
+static void
+x_g_hash_table_safe_for_each (GHashTable *hash_table,
+                              GHFunc callback,
+                              gpointer callback_data)
+{
+	FlattenedHashTable flattened;
+	GList *p, *q;
+
+	flattened.keys = NULL;
+	flattened.values = NULL;
+
+	g_hash_table_foreach (hash_table,
+	                      flatten_hash_table_element,
+	                      &flattened);
+
+	for (p = flattened.keys, q = flattened.values;
+	     p != NULL;
+	     p = p->next, q = q->next) {
+	        (* callback) (p->data, q->data, callback_data);
+	}
+
+	g_list_free (flattened.keys);
+	g_list_free (flattened.values);
+}
+/*----------------------------------------------------------------------------*/
+
 static gboolean
 remove_agent (NMAgentManager *self, const char *owner)
 {
 	NMAgentManagerPrivate *priv = NM_AGENT_MANAGER_GET_PRIVATE (self);
 	NMSecretAgent *agent;
-	GHashTableIter iter;
-	gpointer data;
 
 	g_return_val_if_fail (owner != NULL, FALSE);
 
@@ -119,10 +166,8 @@ remove_agent (NMAgentManager *self, const char *owner)
 	nm_log_dbg (LOGD_AGENTS, "(%s) agent unregistered",
 	            nm_secret_agent_get_description (agent));
 
-	/* Remove this agent to any in-progress secrets requests */
-	g_hash_table_iter_init (&iter, priv->requests);
-	while (g_hash_table_iter_next (&iter, NULL, &data))
-		request_remove_agent ((Request *) data, agent);
+	/* Remove this agent from any in-progress secrets requests */
+	x_g_hash_table_safe_for_each (priv->requests, request_remove_agent, agent);
 
 	/* And dispose of the agent */
 	g_hash_table_remove (priv->agents, owner);
@@ -471,7 +516,7 @@ request_free (Request *req)
 	if (req->cancel_callback)
 		req->cancel_callback (req);
 
-	g_slist_free (req->pending);
+	g_slist_free_full (req->pending, g_object_unref);
 	g_slist_free (req->asked);
 	g_object_unref (req->connection);
 	g_free (req->setting_name);
@@ -576,7 +621,7 @@ request_add_agent (Request *req,
 
 	/* Add this agent to the list, preferring active sessions */
 	req->pending = g_slist_insert_sorted_with_data (req->pending,
-	                                                agent,
+	                                                g_object_ref (agent),
 	                                                (GCompareDataFunc) agent_compare_func,
 	                                                session_monitor);
 }
@@ -594,17 +639,21 @@ request_add_agents (NMAgentManager *self, Request *req)
 }
 
 static void
-request_remove_agent (Request *req, NMSecretAgent *agent)
+request_remove_agent (gpointer key, gpointer value, gpointer user_data)
 {
+	Request *req = (Request *) value;
+	NMSecretAgent *agent = (NMSecretAgent *) user_data;
 	gboolean try_next = FALSE;
 	const char *detail = "";
+	GSList *found;
 
 	g_return_if_fail (req != NULL);
 	g_return_if_fail (agent != NULL);
 
 	/* If this agent is being asked right now, cancel the request */
 	if (agent == req->current) {
-		req->cancel_callback (req);
+		if (req->cancel_callback)
+			req->cancel_callback (req);
 		req->current_has_modify = FALSE;
 		req->current = NULL;
 		req->current_call_id = NULL;
@@ -616,7 +665,12 @@ request_remove_agent (Request *req, NMSecretAgent *agent)
 				nm_secret_agent_get_description (agent),
 				detail, req, req->setting_name);
 
-	req->pending = g_slist_remove (req->pending, agent);
+	found = g_slist_find (req->pending, agent);
+	if (found) {
+		req->pending = g_slist_remove_link (req->pending, found);
+		g_object_unref (found->data);
+		g_slist_free_1 (found);
+	}
 
 	if (try_next) {
 		/* If the agent serving the in-progress secrets request went away then
@@ -642,6 +696,8 @@ next_generic (Request *req, const char *detail)
 	} else {
 		/* Send a secrets request to the next agent */
 		req->current_has_modify = FALSE;
+		if (req->current)
+			g_object_unref (req->current);
 		req->current = req->pending->data;
 		req->pending = g_slist_remove (req->pending, req->current);
 
@@ -1452,7 +1508,7 @@ dispose (GObject *object)
 
 		nm_auth_changed_func_unregister (authority_changed_cb, NM_AGENT_MANAGER (object));
 
-		g_slist_foreach (priv->chains, (GFunc) nm_auth_chain_unref, NULL);
+		g_slist_free_full (priv->chains, (GDestroyNotify) nm_auth_chain_unref);
 
 		g_hash_table_destroy (priv->agents);
 		g_hash_table_destroy (priv->requests);
diff --git a/src/settings/nm-settings-connection.c b/src/settings/nm-settings-connection.c
index e2aa9845..7bd35cf8 100644
--- a/src/settings/nm-settings-connection.c
+++ b/src/settings/nm-settings-connection.c
@@ -1588,7 +1588,7 @@ nm_settings_connection_get_seen_bssids (NMSettingsConnection *connection)
  * @connection: the #NMSettingsConnection
  * @bssid: the BSSID to check the seen BSSID list for
  *
- * Returns: TRUE if the given @bssid is in the seen BSSIDs list
+ * Returns: %TRUE if the given @bssid is in the seen BSSIDs list
  **/
 gboolean
 nm_settings_connection_has_seen_bssid (NMSettingsConnection *connection,
diff --git a/src/settings/nm-settings-error.h b/src/settings/nm-settings-error.h
index 82132c6f..085ef955 100644
--- a/src/settings/nm-settings-error.h
+++ b/src/settings/nm-settings-error.h
@@ -41,6 +41,7 @@ typedef enum {
 	NM_SETTINGS_ERROR_ADD_FAILED,                  /*< nick=AddFailed >*/
 	NM_SETTINGS_ERROR_SAVE_HOSTNAME_NOT_SUPPORTED, /*< nick=SaveHostnameNotSupported >*/
 	NM_SETTINGS_ERROR_SAVE_HOSTNAME_FAILED,        /*< nick=SaveHostnameFailed >*/
+	NM_SETTINGS_ERROR_HOSTNAME_INVALID,            /*< nick=HostnameInvalid >*/
 	NM_SETTINGS_ERROR_UUID_EXISTS,                 /*< nick=UuidExists >*/
 } NMSettingsError;
 
diff --git a/src/settings/nm-settings.c b/src/settings/nm-settings.c
index e200b83c..71009a0c 100644
--- a/src/settings/nm-settings.c
+++ b/src/settings/nm-settings.c
@@ -1286,6 +1286,33 @@ done:
 	nm_auth_chain_unref (chain);
 }
 
+static gboolean
+validate_hostname (const char *hostname)
+{
+	const char *p;
+	gboolean dot = TRUE;
+
+	if (!hostname || !hostname[0])
+		return FALSE;
+
+	for (p = hostname; *p; p++) {
+		if (*p == '.') {
+			if (dot)
+				return FALSE;
+			dot = TRUE;
+		} else {
+			if (!g_ascii_isalnum (*p) && (*p != '-') && (*p != '_'))
+				return FALSE;
+			dot = FALSE;
+		}
+	}
+
+	if (dot)
+		return FALSE;
+
+	return (p - hostname <= HOST_NAME_MAX);
+}
+
 static void
 impl_settings_save_hostname (NMSettings *self,
                              const char *hostname,
@@ -1295,6 +1322,16 @@ impl_settings_save_hostname (NMSettings *self,
 	NMAuthChain *chain;
 	GError *error = NULL;
 
+	/* Minimal validation of the hostname */
+	if (!validate_hostname (hostname)) {
+		error = g_error_new_literal (NM_SETTINGS_ERROR,
+		                             NM_SETTINGS_ERROR_HOSTNAME_INVALID,
+		                             "The hostname was too long or contained invalid characters.");
+		dbus_g_method_return_error (context, error);
+		g_error_free (error);
+		return;
+	}
+
 	/* Do any of the plugins support setting the hostname? */
 	if (!get_plugin (self, NM_SYSTEM_CONFIG_INTERFACE_CAP_MODIFY_HOSTNAME)) {
 		error = g_error_new_literal (NM_SETTINGS_ERROR,
diff --git a/src/settings/plugins/Makefile.in b/src/settings/plugins/Makefile.in
index 55d3cb70..4a8bc871 100644
--- a/src/settings/plugins/Makefile.in
+++ b/src/settings/plugins/Makefile.in
@@ -215,6 +215,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -237,6 +238,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
diff --git a/src/settings/plugins/example/Makefile.am b/src/settings/plugins/example/Makefile.am
index 95558b72..f3aa11b6 100644
--- a/src/settings/plugins/example/Makefile.am
+++ b/src/settings/plugins/example/Makefile.am
@@ -1,12 +1,15 @@
-INCLUDES = \
+# 'noinst' here because this is an example plugin we don't want to install
+noinst_LTLIBRARIES = libnm-settings-plugin-example.la
+
+libnm_settings_plugin_example_la_CPPFLAGS = \
 	-I$(top_srcdir)/src/settings \
 	-I$(top_srcdir)/include \
 	-I$(top_builddir)/include \
 	-I$(top_srcdir)/libnm-util \
-	-I$(top_builddir)/libnm-util
-
-# 'noinst' here because this is an example plugin we don't want to install
-noinst_LTLIBRARIES = libnm-settings-plugin-example.la
+	-I$(top_builddir)/libnm-util \
+	$(GLIB_CFLAGS) \
+	$(DBUS_CFLAGS) \
+	-DNMCONFDIR=\"$(nmconfdir)\"
 
 # The actual plugins typically pull reader.c and writer.c out into
 # their own static library so that unit tests can use them without
@@ -23,11 +26,6 @@ libnm_settings_plugin_example_la_SOURCES = \
 	reader.c \
 	writer.c
 
-libnm_settings_plugin_example_la_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
-	$(DBUS_CFLAGS) \
-	-DNMCONFDIR=\"$(nmconfdir)\"
-
 libnm_settings_plugin_example_la_LIBADD = \
 	$(top_builddir)/libnm-util/libnm-util.la \
 	$(GLIB_LIBS)
diff --git a/src/settings/plugins/example/Makefile.in b/src/settings/plugins/example/Makefile.in
index 1e6a78a8..d991bc44 100644
--- a/src/settings/plugins/example/Makefile.in
+++ b/src/settings/plugins/example/Makefile.in
@@ -213,6 +213,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -235,6 +236,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -419,17 +421,20 @@ with_dhclient = @with_dhclient@
 with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
-INCLUDES = \
+
+# 'noinst' here because this is an example plugin we don't want to install
+noinst_LTLIBRARIES = libnm-settings-plugin-example.la
+libnm_settings_plugin_example_la_CPPFLAGS = \
 	-I$(top_srcdir)/src/settings \
 	-I$(top_srcdir)/include \
 	-I$(top_builddir)/include \
 	-I$(top_srcdir)/libnm-util \
-	-I$(top_builddir)/libnm-util
+	-I$(top_builddir)/libnm-util \
+	$(GLIB_CFLAGS) \
+	$(DBUS_CFLAGS) \
+	-DNMCONFDIR=\"$(nmconfdir)\"
 
 
-# 'noinst' here because this is an example plugin we don't want to install
-noinst_LTLIBRARIES = libnm-settings-plugin-example.la
-
 # The actual plugins typically pull reader.c and writer.c out into
 # their own static library so that unit tests can use them without
 # having to build the entire plugin.  But since this is a simple
@@ -444,11 +449,6 @@ libnm_settings_plugin_example_la_SOURCES = \
 	reader.c \
 	writer.c
 
-libnm_settings_plugin_example_la_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
-	$(DBUS_CFLAGS) \
-	-DNMCONFDIR=\"$(nmconfdir)\"
-
 libnm_settings_plugin_example_la_LIBADD = \
 	$(top_builddir)/libnm-util/libnm-util.la \
 	$(GLIB_LIBS)
diff --git a/src/settings/plugins/ifcfg-rh/Makefile.am b/src/settings/plugins/ifcfg-rh/Makefile.am
index a2c3f0f0..3faa60d4 100644
--- a/src/settings/plugins/ifcfg-rh/Makefile.am
+++ b/src/settings/plugins/ifcfg-rh/Makefile.am
@@ -22,7 +22,7 @@ libifcfg_rh_io_la_SOURCES = \
 	utils.c \
 	utils.h
 
-INCLUDES = \
+AM_CPPFLAGS = \
 	-I$(top_srcdir)/src/wifi \
 	-I$(top_srcdir)/src/settings \
 	-I$(top_srcdir)/src/posix-signals \
@@ -30,9 +30,7 @@ INCLUDES = \
 	-I$(top_builddir)/include \
 	-I$(top_srcdir)/libnm-glib \
 	-I$(top_srcdir)/libnm-util \
-	-I$(top_builddir)/libnm-util
-
-libifcfg_rh_io_la_CPPFLAGS = \
+	-I$(top_builddir)/libnm-util \
 	$(GLIB_CFLAGS) \
 	$(DBUS_CFLAGS) \
 	$(NSS_CFLAGS) \
@@ -52,11 +50,6 @@ libnm_settings_plugin_ifcfg_rh_la_SOURCES = \
 	nm-ifcfg-connection.c \
 	nm-ifcfg-connection.h
 
-libnm_settings_plugin_ifcfg_rh_la_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
-	$(DBUS_CFLAGS) \
-	-DSYSCONFDIR=\"$(sysconfdir)\"
-
 libnm_settings_plugin_ifcfg_rh_la_LDFLAGS = -module -avoid-version
 libnm_settings_plugin_ifcfg_rh_la_LIBADD = \
 	$(top_builddir)/libnm-util/libnm-util.la \
diff --git a/src/settings/plugins/ifcfg-rh/Makefile.in b/src/settings/plugins/ifcfg-rh/Makefile.in
index 1f706fb0..848d470c 100644
--- a/src/settings/plugins/ifcfg-rh/Makefile.in
+++ b/src/settings/plugins/ifcfg-rh/Makefile.in
@@ -137,9 +137,8 @@ libifcfg_rh_io_la_DEPENDENCIES =  \
 	$(top_builddir)/src/posix-signals/libnm-posix-signals.la \
 	$(top_builddir)/libnm-util/libnm-util.la $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
-am_libifcfg_rh_io_la_OBJECTS = libifcfg_rh_io_la-shvar.lo \
-	libifcfg_rh_io_la-reader.lo libifcfg_rh_io_la-writer.lo \
-	libifcfg_rh_io_la-errors.lo libifcfg_rh_io_la-utils.lo
+am_libifcfg_rh_io_la_OBJECTS = shvar.lo reader.lo writer.lo errors.lo \
+	utils.lo
 libifcfg_rh_io_la_OBJECTS = $(am_libifcfg_rh_io_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -149,9 +148,8 @@ libnm_settings_plugin_ifcfg_rh_la_DEPENDENCIES =  \
 	$(top_builddir)/libnm-util/libnm-util.la \
 	$(top_builddir)/libnm-glib/libnm-glib.la libifcfg-rh-io.la \
 	$(am__DEPENDENCIES_1)
-am_libnm_settings_plugin_ifcfg_rh_la_OBJECTS =  \
-	libnm_settings_plugin_ifcfg_rh_la-plugin.lo \
-	libnm_settings_plugin_ifcfg_rh_la-nm-ifcfg-connection.lo
+am_libnm_settings_plugin_ifcfg_rh_la_OBJECTS = plugin.lo \
+	nm-ifcfg-connection.lo
 libnm_settings_plugin_ifcfg_rh_la_OBJECTS =  \
 	$(am_libnm_settings_plugin_ifcfg_rh_la_OBJECTS)
 libnm_settings_plugin_ifcfg_rh_la_LINK = $(LIBTOOL) $(AM_V_lt) \
@@ -296,6 +294,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -318,6 +317,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -520,7 +520,7 @@ libifcfg_rh_io_la_SOURCES = \
 	utils.c \
 	utils.h
 
-INCLUDES = \
+AM_CPPFLAGS = \
 	-I$(top_srcdir)/src/wifi \
 	-I$(top_srcdir)/src/settings \
 	-I$(top_srcdir)/src/posix-signals \
@@ -528,9 +528,7 @@ INCLUDES = \
 	-I$(top_builddir)/include \
 	-I$(top_srcdir)/libnm-glib \
 	-I$(top_srcdir)/libnm-util \
-	-I$(top_builddir)/libnm-util
-
-libifcfg_rh_io_la_CPPFLAGS = \
+	-I$(top_builddir)/libnm-util \
 	$(GLIB_CFLAGS) \
 	$(DBUS_CFLAGS) \
 	$(NSS_CFLAGS) \
@@ -550,11 +548,6 @@ libnm_settings_plugin_ifcfg_rh_la_SOURCES = \
 	nm-ifcfg-connection.c \
 	nm-ifcfg-connection.h
 
-libnm_settings_plugin_ifcfg_rh_la_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
-	$(DBUS_CFLAGS) \
-	-DSYSCONFDIR=\"$(sysconfdir)\"
-
 libnm_settings_plugin_ifcfg_rh_la_LDFLAGS = -module -avoid-version
 libnm_settings_plugin_ifcfg_rh_la_LIBADD = \
 	$(top_builddir)/libnm-util/libnm-util.la \
@@ -663,13 +656,13 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libifcfg_rh_io_la-errors.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libifcfg_rh_io_la-reader.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libifcfg_rh_io_la-shvar.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libifcfg_rh_io_la-utils.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libifcfg_rh_io_la-writer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_settings_plugin_ifcfg_rh_la-nm-ifcfg-connection.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_settings_plugin_ifcfg_rh_la-plugin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/errors.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm-ifcfg-connection.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plugin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reader.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shvar.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/writer.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -692,55 +685,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
-libifcfg_rh_io_la-shvar.lo: shvar.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libifcfg_rh_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libifcfg_rh_io_la-shvar.lo -MD -MP -MF $(DEPDIR)/libifcfg_rh_io_la-shvar.Tpo -c -o libifcfg_rh_io_la-shvar.lo `test -f 'shvar.c' || echo '$(srcdir)/'`shvar.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libifcfg_rh_io_la-shvar.Tpo $(DEPDIR)/libifcfg_rh_io_la-shvar.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='shvar.c' object='libifcfg_rh_io_la-shvar.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libifcfg_rh_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libifcfg_rh_io_la-shvar.lo `test -f 'shvar.c' || echo '$(srcdir)/'`shvar.c
-
-libifcfg_rh_io_la-reader.lo: reader.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libifcfg_rh_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libifcfg_rh_io_la-reader.lo -MD -MP -MF $(DEPDIR)/libifcfg_rh_io_la-reader.Tpo -c -o libifcfg_rh_io_la-reader.lo `test -f 'reader.c' || echo '$(srcdir)/'`reader.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libifcfg_rh_io_la-reader.Tpo $(DEPDIR)/libifcfg_rh_io_la-reader.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='reader.c' object='libifcfg_rh_io_la-reader.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libifcfg_rh_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libifcfg_rh_io_la-reader.lo `test -f 'reader.c' || echo '$(srcdir)/'`reader.c
-
-libifcfg_rh_io_la-writer.lo: writer.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libifcfg_rh_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libifcfg_rh_io_la-writer.lo -MD -MP -MF $(DEPDIR)/libifcfg_rh_io_la-writer.Tpo -c -o libifcfg_rh_io_la-writer.lo `test -f 'writer.c' || echo '$(srcdir)/'`writer.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libifcfg_rh_io_la-writer.Tpo $(DEPDIR)/libifcfg_rh_io_la-writer.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='writer.c' object='libifcfg_rh_io_la-writer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libifcfg_rh_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libifcfg_rh_io_la-writer.lo `test -f 'writer.c' || echo '$(srcdir)/'`writer.c
-
-libifcfg_rh_io_la-errors.lo: errors.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libifcfg_rh_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libifcfg_rh_io_la-errors.lo -MD -MP -MF $(DEPDIR)/libifcfg_rh_io_la-errors.Tpo -c -o libifcfg_rh_io_la-errors.lo `test -f 'errors.c' || echo '$(srcdir)/'`errors.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libifcfg_rh_io_la-errors.Tpo $(DEPDIR)/libifcfg_rh_io_la-errors.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='errors.c' object='libifcfg_rh_io_la-errors.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libifcfg_rh_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libifcfg_rh_io_la-errors.lo `test -f 'errors.c' || echo '$(srcdir)/'`errors.c
-
-libifcfg_rh_io_la-utils.lo: utils.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libifcfg_rh_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libifcfg_rh_io_la-utils.lo -MD -MP -MF $(DEPDIR)/libifcfg_rh_io_la-utils.Tpo -c -o libifcfg_rh_io_la-utils.lo `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libifcfg_rh_io_la-utils.Tpo $(DEPDIR)/libifcfg_rh_io_la-utils.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='utils.c' object='libifcfg_rh_io_la-utils.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libifcfg_rh_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libifcfg_rh_io_la-utils.lo `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
-
-libnm_settings_plugin_ifcfg_rh_la-plugin.lo: plugin.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_settings_plugin_ifcfg_rh_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm_settings_plugin_ifcfg_rh_la-plugin.lo -MD -MP -MF $(DEPDIR)/libnm_settings_plugin_ifcfg_rh_la-plugin.Tpo -c -o libnm_settings_plugin_ifcfg_rh_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libnm_settings_plugin_ifcfg_rh_la-plugin.Tpo $(DEPDIR)/libnm_settings_plugin_ifcfg_rh_la-plugin.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='plugin.c' object='libnm_settings_plugin_ifcfg_rh_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_settings_plugin_ifcfg_rh_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm_settings_plugin_ifcfg_rh_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
-
-libnm_settings_plugin_ifcfg_rh_la-nm-ifcfg-connection.lo: nm-ifcfg-connection.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_settings_plugin_ifcfg_rh_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm_settings_plugin_ifcfg_rh_la-nm-ifcfg-connection.lo -MD -MP -MF $(DEPDIR)/libnm_settings_plugin_ifcfg_rh_la-nm-ifcfg-connection.Tpo -c -o libnm_settings_plugin_ifcfg_rh_la-nm-ifcfg-connection.lo `test -f 'nm-ifcfg-connection.c' || echo '$(srcdir)/'`nm-ifcfg-connection.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libnm_settings_plugin_ifcfg_rh_la-nm-ifcfg-connection.Tpo $(DEPDIR)/libnm_settings_plugin_ifcfg_rh_la-nm-ifcfg-connection.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='nm-ifcfg-connection.c' object='libnm_settings_plugin_ifcfg_rh_la-nm-ifcfg-connection.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_settings_plugin_ifcfg_rh_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm_settings_plugin_ifcfg_rh_la-nm-ifcfg-connection.lo `test -f 'nm-ifcfg-connection.c' || echo '$(srcdir)/'`nm-ifcfg-connection.c
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
diff --git a/src/settings/plugins/ifcfg-rh/reader.c b/src/settings/plugins/ifcfg-rh/reader.c
index a8bfb044..a40bf21e 100644
--- a/src/settings/plugins/ifcfg-rh/reader.c
+++ b/src/settings/plugins/ifcfg-rh/reader.c
@@ -1360,6 +1360,11 @@ make_ip4_setting (shvarFile *ifcfg,
 			g_object_set (s_ip4, NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME, value, NULL);
 		g_free (value);
 
+		g_object_set (s_ip4,
+		              NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME,
+		              svTrueValue (ifcfg, "DHCP_SEND_HOSTNAME", TRUE),
+		              NULL);
+
 		value = svGetValue (ifcfg, "DHCP_CLIENT_ID", FALSE);
 		if (value && strlen (value))
 			g_object_set (s_ip4, NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID, value, NULL);
diff --git a/src/settings/plugins/ifcfg-rh/tests/Makefile.am b/src/settings/plugins/ifcfg-rh/tests/Makefile.am
index 9aec92fe..d1b75fc3 100644
--- a/src/settings/plugins/ifcfg-rh/tests/Makefile.am
+++ b/src/settings/plugins/ifcfg-rh/tests/Makefile.am
@@ -2,13 +2,14 @@ if ENABLE_TESTS
 
 SUBDIRS=network-scripts
 
-INCLUDES = \
+AM_CPPFLAGS = \
 	-I$(top_srcdir)/include \
 	-I$(top_builddir)/include \
 	-I$(top_srcdir)/libnm-util \
 	-I$(top_builddir)/libnm-util \
 	-I$(top_srcdir)/libnm-glib \
-	-I$(srcdir)/../
+	-I$(srcdir)/../ \
+	$(GLIB_CFLAGS)
 
 noinst_PROGRAMS = test-ifcfg-rh test-ifcfg-rh-utils
 
@@ -16,7 +17,7 @@ test_ifcfg_rh_SOURCES = \
 	test-ifcfg-rh.c
 
 test_ifcfg_rh_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
+	$(AM_CPPFLAGS) \
 	$(DBUS_CFLAGS) \
 	-DTEST_IFCFG_DIR=\"$(abs_srcdir)\" \
 	-DTEST_SCRATCH_DIR=\"$(abs_builddir)/\"
@@ -32,9 +33,6 @@ test_ifcfg_rh_LDADD = \
 test_ifcfg_rh_utils_SOURCES = \
 	test-ifcfg-rh-utils.c
 
-test_ifcfg_rh_utils_CPPFLAGS = \
-	$(GLIB_CFLAGS)
-
 test_ifcfg_rh_utils_LDADD = \
 	$(builddir)/../libifcfg-rh-io.la
 
diff --git a/src/settings/plugins/ifcfg-rh/tests/Makefile.in b/src/settings/plugins/ifcfg-rh/tests/Makefile.in
index a22fc14c..94c0dc69 100644
--- a/src/settings/plugins/ifcfg-rh/tests/Makefile.in
+++ b/src/settings/plugins/ifcfg-rh/tests/Makefile.in
@@ -119,7 +119,8 @@ am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 am__v_lt_1 = 
 am__test_ifcfg_rh_utils_SOURCES_DIST = test-ifcfg-rh-utils.c
-@ENABLE_TESTS_TRUE@am_test_ifcfg_rh_utils_OBJECTS = test_ifcfg_rh_utils-test-ifcfg-rh-utils.$(OBJEXT)
+@ENABLE_TESTS_TRUE@am_test_ifcfg_rh_utils_OBJECTS =  \
+@ENABLE_TESTS_TRUE@	test-ifcfg-rh-utils.$(OBJEXT)
 test_ifcfg_rh_utils_OBJECTS = $(am_test_ifcfg_rh_utils_OBJECTS)
 @ENABLE_TESTS_TRUE@test_ifcfg_rh_utils_DEPENDENCIES =  \
 @ENABLE_TESTS_TRUE@	$(builddir)/../libifcfg-rh-io.la
@@ -259,6 +260,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -281,6 +283,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -466,19 +469,20 @@ with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
 @ENABLE_TESTS_TRUE@SUBDIRS = network-scripts
-@ENABLE_TESTS_TRUE@INCLUDES = \
+@ENABLE_TESTS_TRUE@AM_CPPFLAGS = \
 @ENABLE_TESTS_TRUE@	-I$(top_srcdir)/include \
 @ENABLE_TESTS_TRUE@	-I$(top_builddir)/include \
 @ENABLE_TESTS_TRUE@	-I$(top_srcdir)/libnm-util \
 @ENABLE_TESTS_TRUE@	-I$(top_builddir)/libnm-util \
 @ENABLE_TESTS_TRUE@	-I$(top_srcdir)/libnm-glib \
-@ENABLE_TESTS_TRUE@	-I$(srcdir)/../
+@ENABLE_TESTS_TRUE@	-I$(srcdir)/../ \
+@ENABLE_TESTS_TRUE@	$(GLIB_CFLAGS)
 
 @ENABLE_TESTS_TRUE@test_ifcfg_rh_SOURCES = \
 @ENABLE_TESTS_TRUE@	test-ifcfg-rh.c
 
 @ENABLE_TESTS_TRUE@test_ifcfg_rh_CPPFLAGS = \
-@ENABLE_TESTS_TRUE@	$(GLIB_CFLAGS) \
+@ENABLE_TESTS_TRUE@	$(AM_CPPFLAGS) \
 @ENABLE_TESTS_TRUE@	$(DBUS_CFLAGS) \
 @ENABLE_TESTS_TRUE@	-DTEST_IFCFG_DIR=\"$(abs_srcdir)\" \
 @ENABLE_TESTS_TRUE@	-DTEST_SCRATCH_DIR=\"$(abs_builddir)/\"
@@ -493,9 +497,6 @@ with_resolvconf = @with_resolvconf@
 @ENABLE_TESTS_TRUE@test_ifcfg_rh_utils_SOURCES = \
 @ENABLE_TESTS_TRUE@	test-ifcfg-rh-utils.c
 
-@ENABLE_TESTS_TRUE@test_ifcfg_rh_utils_CPPFLAGS = \
-@ENABLE_TESTS_TRUE@	$(GLIB_CFLAGS)
-
 @ENABLE_TESTS_TRUE@test_ifcfg_rh_utils_LDADD = \
 @ENABLE_TESTS_TRUE@	$(builddir)/../libifcfg-rh-io.la
 
@@ -567,8 +568,8 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ifcfg-rh-utils.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ifcfg_rh-test-ifcfg-rh.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ifcfg_rh_utils-test-ifcfg-rh-utils.Po@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -605,20 +606,6 @@ test_ifcfg_rh-test-ifcfg-rh.obj: test-ifcfg-rh.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_ifcfg_rh_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_ifcfg_rh-test-ifcfg-rh.obj `if test -f 'test-ifcfg-rh.c'; then $(CYGPATH_W) 'test-ifcfg-rh.c'; else $(CYGPATH_W) '$(srcdir)/test-ifcfg-rh.c'; fi`
 
-test_ifcfg_rh_utils-test-ifcfg-rh-utils.o: test-ifcfg-rh-utils.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_ifcfg_rh_utils_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_ifcfg_rh_utils-test-ifcfg-rh-utils.o -MD -MP -MF $(DEPDIR)/test_ifcfg_rh_utils-test-ifcfg-rh-utils.Tpo -c -o test_ifcfg_rh_utils-test-ifcfg-rh-utils.o `test -f 'test-ifcfg-rh-utils.c' || echo '$(srcdir)/'`test-ifcfg-rh-utils.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/test_ifcfg_rh_utils-test-ifcfg-rh-utils.Tpo $(DEPDIR)/test_ifcfg_rh_utils-test-ifcfg-rh-utils.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test-ifcfg-rh-utils.c' object='test_ifcfg_rh_utils-test-ifcfg-rh-utils.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_ifcfg_rh_utils_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_ifcfg_rh_utils-test-ifcfg-rh-utils.o `test -f 'test-ifcfg-rh-utils.c' || echo '$(srcdir)/'`test-ifcfg-rh-utils.c
-
-test_ifcfg_rh_utils-test-ifcfg-rh-utils.obj: test-ifcfg-rh-utils.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_ifcfg_rh_utils_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_ifcfg_rh_utils-test-ifcfg-rh-utils.obj -MD -MP -MF $(DEPDIR)/test_ifcfg_rh_utils-test-ifcfg-rh-utils.Tpo -c -o test_ifcfg_rh_utils-test-ifcfg-rh-utils.obj `if test -f 'test-ifcfg-rh-utils.c'; then $(CYGPATH_W) 'test-ifcfg-rh-utils.c'; else $(CYGPATH_W) '$(srcdir)/test-ifcfg-rh-utils.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/test_ifcfg_rh_utils-test-ifcfg-rh-utils.Tpo $(DEPDIR)/test_ifcfg_rh_utils-test-ifcfg-rh-utils.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test-ifcfg-rh-utils.c' object='test_ifcfg_rh_utils-test-ifcfg-rh-utils.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_ifcfg_rh_utils_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_ifcfg_rh_utils-test-ifcfg-rh-utils.obj `if test -f 'test-ifcfg-rh-utils.c'; then $(CYGPATH_W) 'test-ifcfg-rh-utils.c'; else $(CYGPATH_W) '$(srcdir)/test-ifcfg-rh-utils.c'; fi`
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
diff --git a/src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.in b/src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.in
index d858fa06..a8933e30 100644
--- a/src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.in
+++ b/src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.in
@@ -151,6 +151,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -173,6 +174,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
diff --git a/src/settings/plugins/ifcfg-suse/Makefile.in b/src/settings/plugins/ifcfg-suse/Makefile.in
index b745b676..1bc5bd60 100644
--- a/src/settings/plugins/ifcfg-suse/Makefile.in
+++ b/src/settings/plugins/ifcfg-suse/Makefile.in
@@ -239,6 +239,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -261,6 +262,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
diff --git a/src/settings/plugins/ifnet/Makefile.am b/src/settings/plugins/ifnet/Makefile.am
index 9aaa06f8..66d706b6 100644
--- a/src/settings/plugins/ifnet/Makefile.am
+++ b/src/settings/plugins/ifnet/Makefile.am
@@ -1,17 +1,21 @@
 SUBDIRS = . tests
 
-INCLUDES = \
+pkglib_LTLIBRARIES = libnm-settings-plugin-ifnet.la
+
+noinst_LTLIBRARIES = lib-ifnet-io.la
+
+AM_CPPFLAGS = \
 	-I$(top_srcdir)/src/wifi \
 	-I$(top_srcdir)/src/settings \
 	-I$(top_srcdir)/include \
 	-I$(top_builddir)/include \
 	-I$(top_srcdir)/libnm-glib \
 	-I$(top_srcdir)/libnm-util \
-	-I$(top_builddir)/libnm-util
-
-pkglib_LTLIBRARIES = libnm-settings-plugin-ifnet.la
-
-noinst_LTLIBRARIES = lib-ifnet-io.la
+	-I$(top_builddir)/libnm-util \
+	$(GLIB_CFLAGS) \
+	$(DBUS_CFLAGS) \
+	-DSYSCONFDIR=\"$(sysconfdir)\" \
+	-DSBINDIR=\"$(sbindir)\"
 
 libnm_settings_plugin_ifnet_la_SOURCES = \
 	nm-ifnet-connection.c \
@@ -20,10 +24,8 @@ libnm_settings_plugin_ifnet_la_SOURCES = \
 	plugin.h 
 
 libnm_settings_plugin_ifnet_la_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
-	$(DBUS_CFLAGS) \
 	$(GUDEV_CFLAGS) \
-	-DSYSCONFDIR=\"$(sysconfdir)\"
+	$(AM_CPPFLAGS)
 
 libnm_settings_plugin_ifnet_la_LDFLAGS = -module -avoid-version
 
@@ -44,12 +46,6 @@ lib_ifnet_io_la_SOURCES = \
 	wpa_parser.h\
 	wpa_parser.c
 
-lib_ifnet_io_la_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
-	$(DBUS_CFLAGS) \
-	-DSYSCONFDIR=\"$(sysconfdir)\" \
-	-DSBINDIR=\"$(sbindir)\"
-
 lib_ifnet_io_la_LIBADD = \
 	 $(top_builddir)/src/wifi/libwifi-utils.la \
 	 $(top_builddir)/libnm-util/libnm-util.la \
diff --git a/src/settings/plugins/ifnet/Makefile.in b/src/settings/plugins/ifnet/Makefile.in
index 7c272ade..f12de4fa 100644
--- a/src/settings/plugins/ifnet/Makefile.in
+++ b/src/settings/plugins/ifnet/Makefile.in
@@ -133,9 +133,8 @@ am__DEPENDENCIES_1 =
 lib_ifnet_io_la_DEPENDENCIES =  \
 	$(top_builddir)/src/wifi/libwifi-utils.la \
 	$(top_builddir)/libnm-util/libnm-util.la $(am__DEPENDENCIES_1)
-am_lib_ifnet_io_la_OBJECTS = lib_ifnet_io_la-net_parser.lo \
-	lib_ifnet_io_la-connection_parser.lo \
-	lib_ifnet_io_la-net_utils.lo lib_ifnet_io_la-wpa_parser.lo
+am_lib_ifnet_io_la_OBJECTS = net_parser.lo connection_parser.lo \
+	net_utils.lo wpa_parser.lo
 lib_ifnet_io_la_OBJECTS = $(am_lib_ifnet_io_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -291,6 +290,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -313,6 +313,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -498,17 +499,21 @@ with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
 SUBDIRS = . tests
-INCLUDES = \
+pkglib_LTLIBRARIES = libnm-settings-plugin-ifnet.la
+noinst_LTLIBRARIES = lib-ifnet-io.la
+AM_CPPFLAGS = \
 	-I$(top_srcdir)/src/wifi \
 	-I$(top_srcdir)/src/settings \
 	-I$(top_srcdir)/include \
 	-I$(top_builddir)/include \
 	-I$(top_srcdir)/libnm-glib \
 	-I$(top_srcdir)/libnm-util \
-	-I$(top_builddir)/libnm-util
+	-I$(top_builddir)/libnm-util \
+	$(GLIB_CFLAGS) \
+	$(DBUS_CFLAGS) \
+	-DSYSCONFDIR=\"$(sysconfdir)\" \
+	-DSBINDIR=\"$(sbindir)\"
 
-pkglib_LTLIBRARIES = libnm-settings-plugin-ifnet.la
-noinst_LTLIBRARIES = lib-ifnet-io.la
 libnm_settings_plugin_ifnet_la_SOURCES = \
 	nm-ifnet-connection.c \
 	nm-ifnet-connection.h \
@@ -516,10 +521,8 @@ libnm_settings_plugin_ifnet_la_SOURCES = \
 	plugin.h 
 
 libnm_settings_plugin_ifnet_la_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
-	$(DBUS_CFLAGS) \
 	$(GUDEV_CFLAGS) \
-	-DSYSCONFDIR=\"$(sysconfdir)\"
+	$(AM_CPPFLAGS)
 
 libnm_settings_plugin_ifnet_la_LDFLAGS = -module -avoid-version
 libnm_settings_plugin_ifnet_la_LIBADD = \
@@ -539,12 +542,6 @@ lib_ifnet_io_la_SOURCES = \
 	wpa_parser.h\
 	wpa_parser.c
 
-lib_ifnet_io_la_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
-	$(DBUS_CFLAGS) \
-	-DSYSCONFDIR=\"$(sysconfdir)\" \
-	-DSBINDIR=\"$(sbindir)\"
-
 lib_ifnet_io_la_LIBADD = \
 	 $(top_builddir)/src/wifi/libwifi-utils.la \
 	 $(top_builddir)/libnm-util/libnm-util.la \
@@ -643,12 +640,12 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib_ifnet_io_la-connection_parser.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib_ifnet_io_la-net_parser.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib_ifnet_io_la-net_utils.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib_ifnet_io_la-wpa_parser.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connection_parser.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_settings_plugin_ifnet_la-nm-ifnet-connection.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_settings_plugin_ifnet_la-plugin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net_parser.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net_utils.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wpa_parser.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -671,34 +668,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
-lib_ifnet_io_la-net_parser.lo: net_parser.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_ifnet_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_ifnet_io_la-net_parser.lo -MD -MP -MF $(DEPDIR)/lib_ifnet_io_la-net_parser.Tpo -c -o lib_ifnet_io_la-net_parser.lo `test -f 'net_parser.c' || echo '$(srcdir)/'`net_parser.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/lib_ifnet_io_la-net_parser.Tpo $(DEPDIR)/lib_ifnet_io_la-net_parser.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='net_parser.c' object='lib_ifnet_io_la-net_parser.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_ifnet_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_ifnet_io_la-net_parser.lo `test -f 'net_parser.c' || echo '$(srcdir)/'`net_parser.c
-
-lib_ifnet_io_la-connection_parser.lo: connection_parser.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_ifnet_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_ifnet_io_la-connection_parser.lo -MD -MP -MF $(DEPDIR)/lib_ifnet_io_la-connection_parser.Tpo -c -o lib_ifnet_io_la-connection_parser.lo `test -f 'connection_parser.c' || echo '$(srcdir)/'`connection_parser.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/lib_ifnet_io_la-connection_parser.Tpo $(DEPDIR)/lib_ifnet_io_la-connection_parser.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='connection_parser.c' object='lib_ifnet_io_la-connection_parser.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_ifnet_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_ifnet_io_la-connection_parser.lo `test -f 'connection_parser.c' || echo '$(srcdir)/'`connection_parser.c
-
-lib_ifnet_io_la-net_utils.lo: net_utils.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_ifnet_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_ifnet_io_la-net_utils.lo -MD -MP -MF $(DEPDIR)/lib_ifnet_io_la-net_utils.Tpo -c -o lib_ifnet_io_la-net_utils.lo `test -f 'net_utils.c' || echo '$(srcdir)/'`net_utils.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/lib_ifnet_io_la-net_utils.Tpo $(DEPDIR)/lib_ifnet_io_la-net_utils.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='net_utils.c' object='lib_ifnet_io_la-net_utils.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_ifnet_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_ifnet_io_la-net_utils.lo `test -f 'net_utils.c' || echo '$(srcdir)/'`net_utils.c
-
-lib_ifnet_io_la-wpa_parser.lo: wpa_parser.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_ifnet_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_ifnet_io_la-wpa_parser.lo -MD -MP -MF $(DEPDIR)/lib_ifnet_io_la-wpa_parser.Tpo -c -o lib_ifnet_io_la-wpa_parser.lo `test -f 'wpa_parser.c' || echo '$(srcdir)/'`wpa_parser.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/lib_ifnet_io_la-wpa_parser.Tpo $(DEPDIR)/lib_ifnet_io_la-wpa_parser.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='wpa_parser.c' object='lib_ifnet_io_la-wpa_parser.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_ifnet_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_ifnet_io_la-wpa_parser.lo `test -f 'wpa_parser.c' || echo '$(srcdir)/'`wpa_parser.c
-
 libnm_settings_plugin_ifnet_la-nm-ifnet-connection.lo: nm-ifnet-connection.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_settings_plugin_ifnet_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm_settings_plugin_ifnet_la-nm-ifnet-connection.lo -MD -MP -MF $(DEPDIR)/libnm_settings_plugin_ifnet_la-nm-ifnet-connection.Tpo -c -o libnm_settings_plugin_ifnet_la-nm-ifnet-connection.lo `test -f 'nm-ifnet-connection.c' || echo '$(srcdir)/'`nm-ifnet-connection.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libnm_settings_plugin_ifnet_la-nm-ifnet-connection.Tpo $(DEPDIR)/libnm_settings_plugin_ifnet_la-nm-ifnet-connection.Plo
diff --git a/src/settings/plugins/ifnet/connection_parser.c b/src/settings/plugins/ifnet/connection_parser.c
index c85b5c4b..da3f913d 100644
--- a/src/settings/plugins/ifnet/connection_parser.c
+++ b/src/settings/plugins/ifnet/connection_parser.c
@@ -584,7 +584,7 @@ make_ip4_setting (NMConnection *connection,
 
 	NMSettingIP4Config *ip4_setting =
 	    NM_SETTING_IP4_CONFIG (nm_setting_ip4_config_new ());
-	const char *value, *method;
+	const char *value, *method = NULL;
 	gboolean is_static_block = is_static_ip4 (conn_name);
 	ip_block *iblock = NULL;
 
diff --git a/src/settings/plugins/ifnet/tests/Makefile.am b/src/settings/plugins/ifnet/tests/Makefile.am
index 23f96c81..8d80b730 100644
--- a/src/settings/plugins/ifnet/tests/Makefile.am
+++ b/src/settings/plugins/ifnet/tests/Makefile.am
@@ -1,21 +1,20 @@
 if ENABLE_TESTS
 
-INCLUDES=-I$(srcdir)/../ \
-	 -I$(top_srcdir)/libnm-glib \
-	 -I$(top_srcdir)/libnm-util \
-	 -I$(top_builddir)/libnm-util \
-	 -I$(top_srcdir)/include \
-	 -I$(top_builddir)/include \
-	 -I$(top_srcdir)/src/settings
-
-noinst_PROGRAMS = check_ifnet
-check_ifnet_SOURCES = test_all.c
-
-check_ifnet_CPPFLAGS = \
+AM_CPPFLAGS= \
+	-I$(srcdir)/../ \
+	-I$(top_srcdir)/libnm-glib \
+	-I$(top_srcdir)/libnm-util \
+	-I$(top_builddir)/libnm-util \
+	-I$(top_srcdir)/include \
+	-I$(top_builddir)/include \
+	-I$(top_srcdir)/src/settings \
 	$(CHECK_CFLAGS) \
 	$(GLIB_CFLAGS) \
 	-DTEST_WPA_SUPPLICANT_CONF='"$(srcdir)/wpa_supplicant.conf"'
 
+noinst_PROGRAMS = check_ifnet
+check_ifnet_SOURCES = test_all.c
+
 check_ifnet_LDADD = $(top_builddir)/libnm-util/libnm-util.la \
 		    $(builddir)/../lib-ifnet-io.la \
 		    $(CHECK_LIBS) \
diff --git a/src/settings/plugins/ifnet/tests/Makefile.in b/src/settings/plugins/ifnet/tests/Makefile.in
index 1b1330a1..17ec85d0 100644
--- a/src/settings/plugins/ifnet/tests/Makefile.in
+++ b/src/settings/plugins/ifnet/tests/Makefile.in
@@ -103,8 +103,7 @@ CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 PROGRAMS = $(noinst_PROGRAMS)
 am__check_ifnet_SOURCES_DIST = test_all.c
-@ENABLE_TESTS_TRUE@am_check_ifnet_OBJECTS =  \
-@ENABLE_TESTS_TRUE@	check_ifnet-test_all.$(OBJEXT)
+@ENABLE_TESTS_TRUE@am_check_ifnet_OBJECTS = test_all.$(OBJEXT)
 check_ifnet_OBJECTS = $(am_check_ifnet_OBJECTS)
 am__DEPENDENCIES_1 =
 @ENABLE_TESTS_TRUE@check_ifnet_DEPENDENCIES =  \
@@ -208,6 +207,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -230,6 +230,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -414,20 +415,19 @@ with_dhclient = @with_dhclient@
 with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
-@ENABLE_TESTS_TRUE@INCLUDES = -I$(srcdir)/../ \
-@ENABLE_TESTS_TRUE@	 -I$(top_srcdir)/libnm-glib \
-@ENABLE_TESTS_TRUE@	 -I$(top_srcdir)/libnm-util \
-@ENABLE_TESTS_TRUE@	 -I$(top_builddir)/libnm-util \
-@ENABLE_TESTS_TRUE@	 -I$(top_srcdir)/include \
-@ENABLE_TESTS_TRUE@	 -I$(top_builddir)/include \
-@ENABLE_TESTS_TRUE@	 -I$(top_srcdir)/src/settings
-
-@ENABLE_TESTS_TRUE@check_ifnet_SOURCES = test_all.c
-@ENABLE_TESTS_TRUE@check_ifnet_CPPFLAGS = \
+@ENABLE_TESTS_TRUE@AM_CPPFLAGS = \
+@ENABLE_TESTS_TRUE@	-I$(srcdir)/../ \
+@ENABLE_TESTS_TRUE@	-I$(top_srcdir)/libnm-glib \
+@ENABLE_TESTS_TRUE@	-I$(top_srcdir)/libnm-util \
+@ENABLE_TESTS_TRUE@	-I$(top_builddir)/libnm-util \
+@ENABLE_TESTS_TRUE@	-I$(top_srcdir)/include \
+@ENABLE_TESTS_TRUE@	-I$(top_builddir)/include \
+@ENABLE_TESTS_TRUE@	-I$(top_srcdir)/src/settings \
 @ENABLE_TESTS_TRUE@	$(CHECK_CFLAGS) \
 @ENABLE_TESTS_TRUE@	$(GLIB_CFLAGS) \
 @ENABLE_TESTS_TRUE@	-DTEST_WPA_SUPPLICANT_CONF='"$(srcdir)/wpa_supplicant.conf"'
 
+@ENABLE_TESTS_TRUE@check_ifnet_SOURCES = test_all.c
 @ENABLE_TESTS_TRUE@check_ifnet_LDADD = $(top_builddir)/libnm-util/libnm-util.la \
 @ENABLE_TESTS_TRUE@		    $(builddir)/../lib-ifnet-io.la \
 @ENABLE_TESTS_TRUE@		    $(CHECK_LIBS) \
@@ -496,7 +496,7 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_ifnet-test_all.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_all.Po@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -519,20 +519,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
-check_ifnet-test_all.o: test_all.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(check_ifnet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT check_ifnet-test_all.o -MD -MP -MF $(DEPDIR)/check_ifnet-test_all.Tpo -c -o check_ifnet-test_all.o `test -f 'test_all.c' || echo '$(srcdir)/'`test_all.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/check_ifnet-test_all.Tpo $(DEPDIR)/check_ifnet-test_all.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test_all.c' object='check_ifnet-test_all.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(check_ifnet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o check_ifnet-test_all.o `test -f 'test_all.c' || echo '$(srcdir)/'`test_all.c
-
-check_ifnet-test_all.obj: test_all.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(check_ifnet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT check_ifnet-test_all.obj -MD -MP -MF $(DEPDIR)/check_ifnet-test_all.Tpo -c -o check_ifnet-test_all.obj `if test -f 'test_all.c'; then $(CYGPATH_W) 'test_all.c'; else $(CYGPATH_W) '$(srcdir)/test_all.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/check_ifnet-test_all.Tpo $(DEPDIR)/check_ifnet-test_all.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test_all.c' object='check_ifnet-test_all.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(check_ifnet_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o check_ifnet-test_all.obj `if test -f 'test_all.c'; then $(CYGPATH_W) 'test_all.c'; else $(CYGPATH_W) '$(srcdir)/test_all.c'; fi`
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
diff --git a/src/settings/plugins/ifupdown/Makefile.am b/src/settings/plugins/ifupdown/Makefile.am
index 9d0ad259..ae07f7b0 100644
--- a/src/settings/plugins/ifupdown/Makefile.am
+++ b/src/settings/plugins/ifupdown/Makefile.am
@@ -1,13 +1,16 @@
 SUBDIRS = . tests
 
-INCLUDES = \
+AM_CPPFLAGS = \
 	-I$(top_srcdir)/src/logging \
 	-I$(top_srcdir)/src/settings \
 	-I$(top_srcdir)/include \
 	-I$(top_builddir)/include \
 	-I$(top_srcdir)/libnm-glib \
 	-I$(top_srcdir)/libnm-util \
-	-I$(top_builddir)/libnm-util
+	-I$(top_builddir)/libnm-util \
+	$(GLIB_CFLAGS) \
+	$(DBUS_CFLAGS) \
+	-DSYSCONFDIR=\"$(sysconfdir)\"
 
 noinst_LTLIBRARIES = libifupdown-io.la
 
@@ -17,11 +20,6 @@ libifupdown_io_la_SOURCES = \
 	parser.c \
 	parser.h
 
-libifupdown_io_la_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
-	$(DBUS_CFLAGS) \
-	-DSYSCONFDIR=\"$(sysconfdir)\"
-
 libifupdown_io_la_LIBADD = \
 	$(top_builddir)/libnm-util/libnm-util.la \
 	$(GLIB_LIBS)
@@ -35,10 +33,8 @@ libnm_settings_plugin_ifupdown_la_SOURCES = \
 	plugin.h
 
 libnm_settings_plugin_ifupdown_la_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
-	$(DBUS_CFLAGS) \
 	$(GUDEV_CFLAGS) \
-	-DSYSCONFDIR=\"$(sysconfdir)\"
+	$(AM_CPPFLAGS)
 
 libnm_settings_plugin_ifupdown_la_LDFLAGS = -module -avoid-version
 libnm_settings_plugin_ifupdown_la_LIBADD = \
diff --git a/src/settings/plugins/ifupdown/Makefile.in b/src/settings/plugins/ifupdown/Makefile.in
index b08b0d52..05629ea0 100644
--- a/src/settings/plugins/ifupdown/Makefile.in
+++ b/src/settings/plugins/ifupdown/Makefile.in
@@ -132,8 +132,7 @@ LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkglib_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libifupdown_io_la_DEPENDENCIES =  \
 	$(top_builddir)/libnm-util/libnm-util.la $(am__DEPENDENCIES_1)
-am_libifupdown_io_la_OBJECTS = libifupdown_io_la-interface_parser.lo \
-	libifupdown_io_la-parser.lo
+am_libifupdown_io_la_OBJECTS = interface_parser.lo parser.lo
 libifupdown_io_la_OBJECTS = $(am_libifupdown_io_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -289,6 +288,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -311,6 +311,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -496,14 +497,17 @@ with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
 SUBDIRS = . tests
-INCLUDES = \
+AM_CPPFLAGS = \
 	-I$(top_srcdir)/src/logging \
 	-I$(top_srcdir)/src/settings \
 	-I$(top_srcdir)/include \
 	-I$(top_builddir)/include \
 	-I$(top_srcdir)/libnm-glib \
 	-I$(top_srcdir)/libnm-util \
-	-I$(top_builddir)/libnm-util
+	-I$(top_builddir)/libnm-util \
+	$(GLIB_CFLAGS) \
+	$(DBUS_CFLAGS) \
+	-DSYSCONFDIR=\"$(sysconfdir)\"
 
 noinst_LTLIBRARIES = libifupdown-io.la
 libifupdown_io_la_SOURCES = \
@@ -512,11 +516,6 @@ libifupdown_io_la_SOURCES = \
 	parser.c \
 	parser.h
 
-libifupdown_io_la_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
-	$(DBUS_CFLAGS) \
-	-DSYSCONFDIR=\"$(sysconfdir)\"
-
 libifupdown_io_la_LIBADD = \
 	$(top_builddir)/libnm-util/libnm-util.la \
 	$(GLIB_LIBS)
@@ -529,10 +528,8 @@ libnm_settings_plugin_ifupdown_la_SOURCES = \
 	plugin.h
 
 libnm_settings_plugin_ifupdown_la_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
-	$(DBUS_CFLAGS) \
 	$(GUDEV_CFLAGS) \
-	-DSYSCONFDIR=\"$(sysconfdir)\"
+	$(AM_CPPFLAGS)
 
 libnm_settings_plugin_ifupdown_la_LDFLAGS = -module -avoid-version
 libnm_settings_plugin_ifupdown_la_LIBADD = \
@@ -635,10 +632,10 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libifupdown_io_la-interface_parser.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libifupdown_io_la-parser.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interface_parser.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_settings_plugin_ifupdown_la-nm-ifupdown-connection.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_settings_plugin_ifupdown_la-plugin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parser.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -661,20 +658,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
-libifupdown_io_la-interface_parser.lo: interface_parser.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libifupdown_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libifupdown_io_la-interface_parser.lo -MD -MP -MF $(DEPDIR)/libifupdown_io_la-interface_parser.Tpo -c -o libifupdown_io_la-interface_parser.lo `test -f 'interface_parser.c' || echo '$(srcdir)/'`interface_parser.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libifupdown_io_la-interface_parser.Tpo $(DEPDIR)/libifupdown_io_la-interface_parser.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='interface_parser.c' object='libifupdown_io_la-interface_parser.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libifupdown_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libifupdown_io_la-interface_parser.lo `test -f 'interface_parser.c' || echo '$(srcdir)/'`interface_parser.c
-
-libifupdown_io_la-parser.lo: parser.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libifupdown_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libifupdown_io_la-parser.lo -MD -MP -MF $(DEPDIR)/libifupdown_io_la-parser.Tpo -c -o libifupdown_io_la-parser.lo `test -f 'parser.c' || echo '$(srcdir)/'`parser.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libifupdown_io_la-parser.Tpo $(DEPDIR)/libifupdown_io_la-parser.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='parser.c' object='libifupdown_io_la-parser.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libifupdown_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libifupdown_io_la-parser.lo `test -f 'parser.c' || echo '$(srcdir)/'`parser.c
-
 libnm_settings_plugin_ifupdown_la-nm-ifupdown-connection.lo: nm-ifupdown-connection.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_settings_plugin_ifupdown_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm_settings_plugin_ifupdown_la-nm-ifupdown-connection.lo -MD -MP -MF $(DEPDIR)/libnm_settings_plugin_ifupdown_la-nm-ifupdown-connection.Tpo -c -o libnm_settings_plugin_ifupdown_la-nm-ifupdown-connection.lo `test -f 'nm-ifupdown-connection.c' || echo '$(srcdir)/'`nm-ifupdown-connection.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libnm_settings_plugin_ifupdown_la-nm-ifupdown-connection.Tpo $(DEPDIR)/libnm_settings_plugin_ifupdown_la-nm-ifupdown-connection.Plo
diff --git a/src/settings/plugins/ifupdown/tests/Makefile.am b/src/settings/plugins/ifupdown/tests/Makefile.am
index 6bde26fe..d8286867 100644
--- a/src/settings/plugins/ifupdown/tests/Makefile.am
+++ b/src/settings/plugins/ifupdown/tests/Makefile.am
@@ -1,23 +1,21 @@
 if ENABLE_TESTS
 
-INCLUDES = \
+noinst_PROGRAMS = test-ifupdown
+
+AM_CPPFLAGS = \
 	-I$(top_srcdir)/include \
 	-I$(top_builddir)/include \
 	-I$(top_srcdir)/libnm-util \
 	-I$(top_builddir)/libnm-util \
 	-I$(top_srcdir)/libnm-glib \
-	-I$(srcdir)/../
-
-noinst_PROGRAMS = test-ifupdown
-
-test_ifupdown_SOURCES = \
-	test-ifupdown.c
-
-test_ifupdown_CPPFLAGS = \
+	-I$(srcdir)/../ \
 	$(GLIB_CFLAGS) \
 	$(DBUS_CFLAGS) \
 	-DTEST_ENI_DIR=\"$(abs_srcdir)\"
 
+test_ifupdown_SOURCES = \
+	test-ifupdown.c
+
 test_ifupdown_LDADD = \
 	$(top_builddir)/libnm-glib/libnm-glib.la \
 	$(top_builddir)/libnm-util/libnm-util.la \
diff --git a/src/settings/plugins/ifupdown/tests/Makefile.in b/src/settings/plugins/ifupdown/tests/Makefile.in
index ef308512..7fea5c87 100644
--- a/src/settings/plugins/ifupdown/tests/Makefile.in
+++ b/src/settings/plugins/ifupdown/tests/Makefile.in
@@ -103,8 +103,7 @@ CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 PROGRAMS = $(noinst_PROGRAMS)
 am__test_ifupdown_SOURCES_DIST = test-ifupdown.c
-@ENABLE_TESTS_TRUE@am_test_ifupdown_OBJECTS =  \
-@ENABLE_TESTS_TRUE@	test_ifupdown-test-ifupdown.$(OBJEXT)
+@ENABLE_TESTS_TRUE@am_test_ifupdown_OBJECTS = test-ifupdown.$(OBJEXT)
 test_ifupdown_OBJECTS = $(am_test_ifupdown_OBJECTS)
 am__DEPENDENCIES_1 =
 @ENABLE_TESTS_TRUE@test_ifupdown_DEPENDENCIES =  \
@@ -209,6 +208,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -231,6 +231,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -415,22 +416,20 @@ with_dhclient = @with_dhclient@
 with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
-@ENABLE_TESTS_TRUE@INCLUDES = \
+@ENABLE_TESTS_TRUE@AM_CPPFLAGS = \
 @ENABLE_TESTS_TRUE@	-I$(top_srcdir)/include \
 @ENABLE_TESTS_TRUE@	-I$(top_builddir)/include \
 @ENABLE_TESTS_TRUE@	-I$(top_srcdir)/libnm-util \
 @ENABLE_TESTS_TRUE@	-I$(top_builddir)/libnm-util \
 @ENABLE_TESTS_TRUE@	-I$(top_srcdir)/libnm-glib \
-@ENABLE_TESTS_TRUE@	-I$(srcdir)/../
-
-@ENABLE_TESTS_TRUE@test_ifupdown_SOURCES = \
-@ENABLE_TESTS_TRUE@	test-ifupdown.c
-
-@ENABLE_TESTS_TRUE@test_ifupdown_CPPFLAGS = \
+@ENABLE_TESTS_TRUE@	-I$(srcdir)/../ \
 @ENABLE_TESTS_TRUE@	$(GLIB_CFLAGS) \
 @ENABLE_TESTS_TRUE@	$(DBUS_CFLAGS) \
 @ENABLE_TESTS_TRUE@	-DTEST_ENI_DIR=\"$(abs_srcdir)\"
 
+@ENABLE_TESTS_TRUE@test_ifupdown_SOURCES = \
+@ENABLE_TESTS_TRUE@	test-ifupdown.c
+
 @ENABLE_TESTS_TRUE@test_ifupdown_LDADD = \
 @ENABLE_TESTS_TRUE@	$(top_builddir)/libnm-glib/libnm-glib.la \
 @ENABLE_TESTS_TRUE@	$(top_builddir)/libnm-util/libnm-util.la \
@@ -496,7 +495,7 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ifupdown-test-ifupdown.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ifupdown.Po@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -519,20 +518,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
-test_ifupdown-test-ifupdown.o: test-ifupdown.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_ifupdown_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_ifupdown-test-ifupdown.o -MD -MP -MF $(DEPDIR)/test_ifupdown-test-ifupdown.Tpo -c -o test_ifupdown-test-ifupdown.o `test -f 'test-ifupdown.c' || echo '$(srcdir)/'`test-ifupdown.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/test_ifupdown-test-ifupdown.Tpo $(DEPDIR)/test_ifupdown-test-ifupdown.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test-ifupdown.c' object='test_ifupdown-test-ifupdown.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_ifupdown_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_ifupdown-test-ifupdown.o `test -f 'test-ifupdown.c' || echo '$(srcdir)/'`test-ifupdown.c
-
-test_ifupdown-test-ifupdown.obj: test-ifupdown.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_ifupdown_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_ifupdown-test-ifupdown.obj -MD -MP -MF $(DEPDIR)/test_ifupdown-test-ifupdown.Tpo -c -o test_ifupdown-test-ifupdown.obj `if test -f 'test-ifupdown.c'; then $(CYGPATH_W) 'test-ifupdown.c'; else $(CYGPATH_W) '$(srcdir)/test-ifupdown.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/test_ifupdown-test-ifupdown.Tpo $(DEPDIR)/test_ifupdown-test-ifupdown.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test-ifupdown.c' object='test_ifupdown-test-ifupdown.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_ifupdown_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_ifupdown-test-ifupdown.obj `if test -f 'test-ifupdown.c'; then $(CYGPATH_W) 'test-ifupdown.c'; else $(CYGPATH_W) '$(srcdir)/test-ifupdown.c'; fi`
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
diff --git a/src/settings/plugins/keyfile/Makefile.am b/src/settings/plugins/keyfile/Makefile.am
index a9fbb663..b0cd688a 100644
--- a/src/settings/plugins/keyfile/Makefile.am
+++ b/src/settings/plugins/keyfile/Makefile.am
@@ -1,11 +1,14 @@
 SUBDIRS = . tests
 
-INCLUDES = \
+AM_CPPFLAGS = \
 	-I$(top_srcdir)/src/settings \
 	-I$(top_srcdir)/include \
 	-I$(top_builddir)/include \
 	-I$(top_srcdir)/libnm-util \
-	-I$(top_builddir)/libnm-util
+	-I$(top_builddir)/libnm-util \
+	$(GLIB_CFLAGS) \
+	$(DBUS_CFLAGS) \
+	-DNMCONFDIR=\"$(nmconfdir)\"
 
 noinst_LTLIBRARIES = \
 	libkeyfile-io.la \
@@ -23,11 +26,6 @@ libkeyfile_io_la_SOURCES = \
 	utils.h \
 	common.h
 
-libkeyfile_io_la_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
-	$(DBUS_CFLAGS) \
-	-DNMCONFDIR=\"$(nmconfdir)\"
-
 libkeyfile_io_la_LIBADD = $(GLIB_LIBS)
 
 #####################################
@@ -38,11 +36,6 @@ libnm_settings_plugin_keyfile_la_SOURCES = \
 	plugin.c \
 	plugin.h
 
-libnm_settings_plugin_keyfile_la_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
-	$(DBUS_CFLAGS) \
-	-DNMCONFDIR=\"$(nmconfdir)\"
-
 libnm_settings_plugin_keyfile_la_LIBADD = \
 	$(top_builddir)/libnm-util/libnm-util.la \
 	libkeyfile-io.la \
diff --git a/src/settings/plugins/keyfile/Makefile.in b/src/settings/plugins/keyfile/Makefile.in
index b1ff03c0..79dfcb42 100644
--- a/src/settings/plugins/keyfile/Makefile.in
+++ b/src/settings/plugins/keyfile/Makefile.in
@@ -103,9 +103,7 @@ CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libkeyfile_io_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am_libkeyfile_io_la_OBJECTS = libkeyfile_io_la-reader.lo \
-	libkeyfile_io_la-writer.lo libkeyfile_io_la-errors.lo \
-	libkeyfile_io_la-utils.lo
+am_libkeyfile_io_la_OBJECTS = reader.lo writer.lo errors.lo utils.lo
 libkeyfile_io_la_OBJECTS = $(am_libkeyfile_io_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -115,8 +113,7 @@ libnm_settings_plugin_keyfile_la_DEPENDENCIES =  \
 	$(top_builddir)/libnm-util/libnm-util.la libkeyfile-io.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am_libnm_settings_plugin_keyfile_la_OBJECTS =  \
-	libnm_settings_plugin_keyfile_la-nm-keyfile-connection.lo \
-	libnm_settings_plugin_keyfile_la-plugin.lo
+	nm-keyfile-connection.lo plugin.lo
 libnm_settings_plugin_keyfile_la_OBJECTS =  \
 	$(am_libnm_settings_plugin_keyfile_la_OBJECTS)
 libnm_settings_plugin_keyfile_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -260,6 +257,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -282,6 +280,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -467,12 +466,15 @@ with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
 SUBDIRS = . tests
-INCLUDES = \
+AM_CPPFLAGS = \
 	-I$(top_srcdir)/src/settings \
 	-I$(top_srcdir)/include \
 	-I$(top_builddir)/include \
 	-I$(top_srcdir)/libnm-util \
-	-I$(top_builddir)/libnm-util
+	-I$(top_builddir)/libnm-util \
+	$(GLIB_CFLAGS) \
+	$(DBUS_CFLAGS) \
+	-DNMCONFDIR=\"$(nmconfdir)\"
 
 noinst_LTLIBRARIES = \
 	libkeyfile-io.la \
@@ -490,11 +492,6 @@ libkeyfile_io_la_SOURCES = \
 	utils.h \
 	common.h
 
-libkeyfile_io_la_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
-	$(DBUS_CFLAGS) \
-	-DNMCONFDIR=\"$(nmconfdir)\"
-
 libkeyfile_io_la_LIBADD = $(GLIB_LIBS)
 
 #####################################
@@ -504,11 +501,6 @@ libnm_settings_plugin_keyfile_la_SOURCES = \
 	plugin.c \
 	plugin.h
 
-libnm_settings_plugin_keyfile_la_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
-	$(DBUS_CFLAGS) \
-	-DNMCONFDIR=\"$(nmconfdir)\"
-
 libnm_settings_plugin_keyfile_la_LIBADD = \
 	$(top_builddir)/libnm-util/libnm-util.la \
 	libkeyfile-io.la \
@@ -575,12 +567,12 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkeyfile_io_la-errors.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkeyfile_io_la-reader.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkeyfile_io_la-utils.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkeyfile_io_la-writer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_settings_plugin_keyfile_la-nm-keyfile-connection.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_settings_plugin_keyfile_la-plugin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/errors.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nm-keyfile-connection.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plugin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reader.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/writer.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -603,48 +595,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
-libkeyfile_io_la-reader.lo: reader.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkeyfile_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libkeyfile_io_la-reader.lo -MD -MP -MF $(DEPDIR)/libkeyfile_io_la-reader.Tpo -c -o libkeyfile_io_la-reader.lo `test -f 'reader.c' || echo '$(srcdir)/'`reader.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libkeyfile_io_la-reader.Tpo $(DEPDIR)/libkeyfile_io_la-reader.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='reader.c' object='libkeyfile_io_la-reader.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkeyfile_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libkeyfile_io_la-reader.lo `test -f 'reader.c' || echo '$(srcdir)/'`reader.c
-
-libkeyfile_io_la-writer.lo: writer.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkeyfile_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libkeyfile_io_la-writer.lo -MD -MP -MF $(DEPDIR)/libkeyfile_io_la-writer.Tpo -c -o libkeyfile_io_la-writer.lo `test -f 'writer.c' || echo '$(srcdir)/'`writer.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libkeyfile_io_la-writer.Tpo $(DEPDIR)/libkeyfile_io_la-writer.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='writer.c' object='libkeyfile_io_la-writer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkeyfile_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libkeyfile_io_la-writer.lo `test -f 'writer.c' || echo '$(srcdir)/'`writer.c
-
-libkeyfile_io_la-errors.lo: errors.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkeyfile_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libkeyfile_io_la-errors.lo -MD -MP -MF $(DEPDIR)/libkeyfile_io_la-errors.Tpo -c -o libkeyfile_io_la-errors.lo `test -f 'errors.c' || echo '$(srcdir)/'`errors.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libkeyfile_io_la-errors.Tpo $(DEPDIR)/libkeyfile_io_la-errors.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='errors.c' object='libkeyfile_io_la-errors.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkeyfile_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libkeyfile_io_la-errors.lo `test -f 'errors.c' || echo '$(srcdir)/'`errors.c
-
-libkeyfile_io_la-utils.lo: utils.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkeyfile_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libkeyfile_io_la-utils.lo -MD -MP -MF $(DEPDIR)/libkeyfile_io_la-utils.Tpo -c -o libkeyfile_io_la-utils.lo `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libkeyfile_io_la-utils.Tpo $(DEPDIR)/libkeyfile_io_la-utils.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='utils.c' object='libkeyfile_io_la-utils.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkeyfile_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libkeyfile_io_la-utils.lo `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
-
-libnm_settings_plugin_keyfile_la-nm-keyfile-connection.lo: nm-keyfile-connection.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_settings_plugin_keyfile_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm_settings_plugin_keyfile_la-nm-keyfile-connection.lo -MD -MP -MF $(DEPDIR)/libnm_settings_plugin_keyfile_la-nm-keyfile-connection.Tpo -c -o libnm_settings_plugin_keyfile_la-nm-keyfile-connection.lo `test -f 'nm-keyfile-connection.c' || echo '$(srcdir)/'`nm-keyfile-connection.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libnm_settings_plugin_keyfile_la-nm-keyfile-connection.Tpo $(DEPDIR)/libnm_settings_plugin_keyfile_la-nm-keyfile-connection.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='nm-keyfile-connection.c' object='libnm_settings_plugin_keyfile_la-nm-keyfile-connection.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_settings_plugin_keyfile_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm_settings_plugin_keyfile_la-nm-keyfile-connection.lo `test -f 'nm-keyfile-connection.c' || echo '$(srcdir)/'`nm-keyfile-connection.c
-
-libnm_settings_plugin_keyfile_la-plugin.lo: plugin.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_settings_plugin_keyfile_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm_settings_plugin_keyfile_la-plugin.lo -MD -MP -MF $(DEPDIR)/libnm_settings_plugin_keyfile_la-plugin.Tpo -c -o libnm_settings_plugin_keyfile_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libnm_settings_plugin_keyfile_la-plugin.Tpo $(DEPDIR)/libnm_settings_plugin_keyfile_la-plugin.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='plugin.c' object='libnm_settings_plugin_keyfile_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_settings_plugin_keyfile_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm_settings_plugin_keyfile_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
diff --git a/src/settings/plugins/keyfile/plugin.c b/src/settings/plugins/keyfile/plugin.c
index 062eb082..ef6613e6 100644
--- a/src/settings/plugins/keyfile/plugin.c
+++ b/src/settings/plugins/keyfile/plugin.c
@@ -582,7 +582,7 @@ dispose (GObject *object)
 	SCPluginKeyfilePrivate *priv = SC_PLUGIN_KEYFILE_GET_PRIVATE (object);
 
 	if (priv->disposed)
-		return;
+		goto out;
 
 	priv->disposed = TRUE;
 
@@ -608,6 +608,7 @@ dispose (GObject *object)
 	if (priv->hash)
 		g_hash_table_destroy (priv->hash);
 
+out:
 	G_OBJECT_CLASS (sc_plugin_keyfile_parent_class)->dispose (object);
 }
 
diff --git a/src/settings/plugins/keyfile/tests/Makefile.am b/src/settings/plugins/keyfile/tests/Makefile.am
index 26e8eafd..c2f5fe3d 100644
--- a/src/settings/plugins/keyfile/tests/Makefile.am
+++ b/src/settings/plugins/keyfile/tests/Makefile.am
@@ -2,25 +2,23 @@ if ENABLE_TESTS
 
 SUBDIRS=keyfiles
 
-INCLUDES = \
+noinst_PROGRAMS = test-keyfile
+
+AM_CPPFLAGS = \
 	-I$(top_srcdir)/include \
 	-I$(top_builddir)/include \
 	-I$(top_srcdir)/libnm-util \
 	-I$(top_builddir)/libnm-util \
 	-I$(top_srcdir)/libnm-glib \
-	-I$(srcdir)/../
-
-noinst_PROGRAMS = test-keyfile
-
-test_keyfile_SOURCES = \
-	test-keyfile.c
-
-test_keyfile_CPPFLAGS = \
+	-I$(srcdir)/../ \
 	$(GLIB_CFLAGS) \
 	$(DBUS_CFLAGS) \
 	-DTEST_KEYFILES_DIR=\"$(abs_srcdir)/keyfiles\" \
 	-DTEST_SCRATCH_DIR=\"$(abs_builddir)/keyfiles\"
 
+test_keyfile_SOURCES = \
+	test-keyfile.c
+
 test_keyfile_LDADD = \
 	$(builddir)/../libkeyfile-io.la \
 	$(top_builddir)/libnm-glib/libnm-glib.la \
diff --git a/src/settings/plugins/keyfile/tests/Makefile.in b/src/settings/plugins/keyfile/tests/Makefile.in
index 8ee20909..675a9fcf 100644
--- a/src/settings/plugins/keyfile/tests/Makefile.in
+++ b/src/settings/plugins/keyfile/tests/Makefile.in
@@ -103,8 +103,7 @@ CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 PROGRAMS = $(noinst_PROGRAMS)
 am__test_keyfile_SOURCES_DIST = test-keyfile.c
-@ENABLE_TESTS_TRUE@am_test_keyfile_OBJECTS =  \
-@ENABLE_TESTS_TRUE@	test_keyfile-test-keyfile.$(OBJEXT)
+@ENABLE_TESTS_TRUE@am_test_keyfile_OBJECTS = test-keyfile.$(OBJEXT)
 test_keyfile_OBJECTS = $(am_test_keyfile_OBJECTS)
 am__DEPENDENCIES_1 =
 @ENABLE_TESTS_TRUE@test_keyfile_DEPENDENCIES =  \
@@ -251,6 +250,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -273,6 +273,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -458,23 +459,21 @@ with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
 @ENABLE_TESTS_TRUE@SUBDIRS = keyfiles
-@ENABLE_TESTS_TRUE@INCLUDES = \
+@ENABLE_TESTS_TRUE@AM_CPPFLAGS = \
 @ENABLE_TESTS_TRUE@	-I$(top_srcdir)/include \
 @ENABLE_TESTS_TRUE@	-I$(top_builddir)/include \
 @ENABLE_TESTS_TRUE@	-I$(top_srcdir)/libnm-util \
 @ENABLE_TESTS_TRUE@	-I$(top_builddir)/libnm-util \
 @ENABLE_TESTS_TRUE@	-I$(top_srcdir)/libnm-glib \
-@ENABLE_TESTS_TRUE@	-I$(srcdir)/../
-
-@ENABLE_TESTS_TRUE@test_keyfile_SOURCES = \
-@ENABLE_TESTS_TRUE@	test-keyfile.c
-
-@ENABLE_TESTS_TRUE@test_keyfile_CPPFLAGS = \
+@ENABLE_TESTS_TRUE@	-I$(srcdir)/../ \
 @ENABLE_TESTS_TRUE@	$(GLIB_CFLAGS) \
 @ENABLE_TESTS_TRUE@	$(DBUS_CFLAGS) \
 @ENABLE_TESTS_TRUE@	-DTEST_KEYFILES_DIR=\"$(abs_srcdir)/keyfiles\" \
 @ENABLE_TESTS_TRUE@	-DTEST_SCRATCH_DIR=\"$(abs_builddir)/keyfiles\"
 
+@ENABLE_TESTS_TRUE@test_keyfile_SOURCES = \
+@ENABLE_TESTS_TRUE@	test-keyfile.c
+
 @ENABLE_TESTS_TRUE@test_keyfile_LDADD = \
 @ENABLE_TESTS_TRUE@	$(builddir)/../libkeyfile-io.la \
 @ENABLE_TESTS_TRUE@	$(top_builddir)/libnm-glib/libnm-glib.la \
@@ -535,7 +534,7 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_keyfile-test-keyfile.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-keyfile.Po@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -558,20 +557,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
-test_keyfile-test-keyfile.o: test-keyfile.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_keyfile_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_keyfile-test-keyfile.o -MD -MP -MF $(DEPDIR)/test_keyfile-test-keyfile.Tpo -c -o test_keyfile-test-keyfile.o `test -f 'test-keyfile.c' || echo '$(srcdir)/'`test-keyfile.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/test_keyfile-test-keyfile.Tpo $(DEPDIR)/test_keyfile-test-keyfile.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test-keyfile.c' object='test_keyfile-test-keyfile.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_keyfile_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_keyfile-test-keyfile.o `test -f 'test-keyfile.c' || echo '$(srcdir)/'`test-keyfile.c
-
-test_keyfile-test-keyfile.obj: test-keyfile.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_keyfile_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_keyfile-test-keyfile.obj -MD -MP -MF $(DEPDIR)/test_keyfile-test-keyfile.Tpo -c -o test_keyfile-test-keyfile.obj `if test -f 'test-keyfile.c'; then $(CYGPATH_W) 'test-keyfile.c'; else $(CYGPATH_W) '$(srcdir)/test-keyfile.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/test_keyfile-test-keyfile.Tpo $(DEPDIR)/test_keyfile-test-keyfile.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test-keyfile.c' object='test_keyfile-test-keyfile.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_keyfile_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_keyfile-test-keyfile.obj `if test -f 'test-keyfile.c'; then $(CYGPATH_W) 'test-keyfile.c'; else $(CYGPATH_W) '$(srcdir)/test-keyfile.c'; fi`
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
diff --git a/src/settings/plugins/keyfile/tests/keyfiles/Makefile.in b/src/settings/plugins/keyfile/tests/keyfiles/Makefile.in
index d479d450..450269b4 100644
--- a/src/settings/plugins/keyfile/tests/keyfiles/Makefile.in
+++ b/src/settings/plugins/keyfile/tests/keyfiles/Makefile.in
@@ -151,6 +151,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -173,6 +174,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
diff --git a/src/settings/tests/Makefile.am b/src/settings/tests/Makefile.am
index 5c0c4565..9471bcb7 100644
--- a/src/settings/tests/Makefile.am
+++ b/src/settings/tests/Makefile.am
@@ -1,10 +1,12 @@
 if ENABLE_TESTS
 
-INCLUDES = \
+AM_CPPFLAGS = \
 	-I$(top_srcdir)/include \
 	-I$(top_builddir)/include \
 	-I$(top_srcdir)/libnm-util \
-	-I$(top_srcdir)/src/settings
+	-I$(top_srcdir)/src/settings \
+	$(GLIB_CFLAGS) \
+	$(DBUS_CFLAGS)
 
 noinst_PROGRAMS = \
 	test-wired-defname
@@ -14,10 +16,6 @@ noinst_PROGRAMS = \
 test_wired_defname_SOURCES = \
 	test-wired-defname.c
 
-test_wired_defname_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
-	$(DBUS_CFLAGS)
-
 test_wired_defname_LDADD = \
 	$(top_builddir)/libnm-util/libnm-util.la \
 	$(top_builddir)/src/settings/libtest-settings-utils.la \
diff --git a/src/settings/tests/Makefile.in b/src/settings/tests/Makefile.in
index c0bdfa6f..1a8b6e1c 100644
--- a/src/settings/tests/Makefile.in
+++ b/src/settings/tests/Makefile.in
@@ -103,7 +103,8 @@ CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 PROGRAMS = $(noinst_PROGRAMS)
 am__test_wired_defname_SOURCES_DIST = test-wired-defname.c
-@ENABLE_TESTS_TRUE@am_test_wired_defname_OBJECTS = test_wired_defname-test-wired-defname.$(OBJEXT)
+@ENABLE_TESTS_TRUE@am_test_wired_defname_OBJECTS =  \
+@ENABLE_TESTS_TRUE@	test-wired-defname.$(OBJEXT)
 test_wired_defname_OBJECTS = $(am_test_wired_defname_OBJECTS)
 am__DEPENDENCIES_1 =
 @ENABLE_TESTS_TRUE@test_wired_defname_DEPENDENCIES =  \
@@ -207,6 +208,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -229,6 +231,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -413,21 +416,19 @@ with_dhclient = @with_dhclient@
 with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
-@ENABLE_TESTS_TRUE@INCLUDES = \
+@ENABLE_TESTS_TRUE@AM_CPPFLAGS = \
 @ENABLE_TESTS_TRUE@	-I$(top_srcdir)/include \
 @ENABLE_TESTS_TRUE@	-I$(top_builddir)/include \
 @ENABLE_TESTS_TRUE@	-I$(top_srcdir)/libnm-util \
-@ENABLE_TESTS_TRUE@	-I$(top_srcdir)/src/settings
+@ENABLE_TESTS_TRUE@	-I$(top_srcdir)/src/settings \
+@ENABLE_TESTS_TRUE@	$(GLIB_CFLAGS) \
+@ENABLE_TESTS_TRUE@	$(DBUS_CFLAGS)
 
 
 ####### wired defname test #######
 @ENABLE_TESTS_TRUE@test_wired_defname_SOURCES = \
 @ENABLE_TESTS_TRUE@	test-wired-defname.c
 
-@ENABLE_TESTS_TRUE@test_wired_defname_CPPFLAGS = \
-@ENABLE_TESTS_TRUE@	$(GLIB_CFLAGS) \
-@ENABLE_TESTS_TRUE@	$(DBUS_CFLAGS)
-
 @ENABLE_TESTS_TRUE@test_wired_defname_LDADD = \
 @ENABLE_TESTS_TRUE@	$(top_builddir)/libnm-util/libnm-util.la \
 @ENABLE_TESTS_TRUE@	$(top_builddir)/src/settings/libtest-settings-utils.la \
@@ -488,7 +489,7 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_wired_defname-test-wired-defname.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wired-defname.Po@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -511,20 +512,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
-test_wired_defname-test-wired-defname.o: test-wired-defname.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_wired_defname_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_wired_defname-test-wired-defname.o -MD -MP -MF $(DEPDIR)/test_wired_defname-test-wired-defname.Tpo -c -o test_wired_defname-test-wired-defname.o `test -f 'test-wired-defname.c' || echo '$(srcdir)/'`test-wired-defname.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/test_wired_defname-test-wired-defname.Tpo $(DEPDIR)/test_wired_defname-test-wired-defname.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test-wired-defname.c' object='test_wired_defname-test-wired-defname.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_wired_defname_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_wired_defname-test-wired-defname.o `test -f 'test-wired-defname.c' || echo '$(srcdir)/'`test-wired-defname.c
-
-test_wired_defname-test-wired-defname.obj: test-wired-defname.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_wired_defname_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_wired_defname-test-wired-defname.obj -MD -MP -MF $(DEPDIR)/test_wired_defname-test-wired-defname.Tpo -c -o test_wired_defname-test-wired-defname.obj `if test -f 'test-wired-defname.c'; then $(CYGPATH_W) 'test-wired-defname.c'; else $(CYGPATH_W) '$(srcdir)/test-wired-defname.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/test_wired_defname-test-wired-defname.Tpo $(DEPDIR)/test_wired_defname-test-wired-defname.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test-wired-defname.c' object='test_wired_defname-test-wired-defname.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_wired_defname_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_wired_defname-test-wired-defname.obj `if test -f 'test-wired-defname.c'; then $(CYGPATH_W) 'test-wired-defname.c'; else $(CYGPATH_W) '$(srcdir)/test-wired-defname.c'; fi`
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
diff --git a/src/supplicant-manager/Makefile.am b/src/supplicant-manager/Makefile.am
index 74ec9c38..a4d2f250 100644
--- a/src/supplicant-manager/Makefile.am
+++ b/src/supplicant-manager/Makefile.am
@@ -1,6 +1,8 @@
 SUBDIRS = . tests
 
-INCLUDES = \
+noinst_LTLIBRARIES = libsupplicant-manager.la
+
+libsupplicant_manager_la_CPPFLAGS = \
 	-I${top_srcdir}/src \
 	-I${top_builddir}/src/generated \
 	-I${top_srcdir}/src/generated \
@@ -8,9 +10,11 @@ INCLUDES = \
 	-I${top_builddir}/include \
 	-I${top_srcdir}/include \
 	-I${top_builddir}/libnm-util \
-	-I${top_srcdir}/libnm-util
-
-noinst_LTLIBRARIES = libsupplicant-manager.la
+	-I${top_srcdir}/libnm-util \
+	$(DBUS_CFLAGS) \
+	$(GLIB_CFLAGS) \
+	-DNM_PKGDATADIR=\"$(pkgdatadir)\" \
+	-DNM_LOCALSTATEDIR=\"$(localstatedir)\"
 
 libsupplicant_manager_la_SOURCES = \
 	nm-supplicant-types.h \
@@ -23,12 +27,6 @@ libsupplicant_manager_la_SOURCES = \
 	nm-supplicant-settings-verify.h \
 	nm-supplicant-settings-verify.c
 
-libsupplicant_manager_la_CPPFLAGS = \
-	$(DBUS_CFLAGS) \
-	$(GLIB_CFLAGS) \
-	-DNM_PKGDATADIR=\"$(pkgdatadir)\" \
-	-DNM_LOCALSTATEDIR=\"$(localstatedir)\"
-
 libsupplicant_manager_la_LIBADD = \
 	$(top_builddir)/src/logging/libnm-logging.la \
 	$(DBUS_LIBS) \
diff --git a/src/supplicant-manager/Makefile.in b/src/supplicant-manager/Makefile.in
index 21fb2e47..6a46202a 100644
--- a/src/supplicant-manager/Makefile.in
+++ b/src/supplicant-manager/Makefile.in
@@ -251,6 +251,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -273,6 +274,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -458,7 +460,8 @@ with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
 SUBDIRS = . tests
-INCLUDES = \
+noinst_LTLIBRARIES = libsupplicant-manager.la
+libsupplicant_manager_la_CPPFLAGS = \
 	-I${top_srcdir}/src \
 	-I${top_builddir}/src/generated \
 	-I${top_srcdir}/src/generated \
@@ -466,9 +469,12 @@ INCLUDES = \
 	-I${top_builddir}/include \
 	-I${top_srcdir}/include \
 	-I${top_builddir}/libnm-util \
-	-I${top_srcdir}/libnm-util
+	-I${top_srcdir}/libnm-util \
+	$(DBUS_CFLAGS) \
+	$(GLIB_CFLAGS) \
+	-DNM_PKGDATADIR=\"$(pkgdatadir)\" \
+	-DNM_LOCALSTATEDIR=\"$(localstatedir)\"
 
-noinst_LTLIBRARIES = libsupplicant-manager.la
 libsupplicant_manager_la_SOURCES = \
 	nm-supplicant-types.h \
 	nm-supplicant-manager.h \
@@ -480,12 +486,6 @@ libsupplicant_manager_la_SOURCES = \
 	nm-supplicant-settings-verify.h \
 	nm-supplicant-settings-verify.c
 
-libsupplicant_manager_la_CPPFLAGS = \
-	$(DBUS_CFLAGS) \
-	$(GLIB_CFLAGS) \
-	-DNM_PKGDATADIR=\"$(pkgdatadir)\" \
-	-DNM_LOCALSTATEDIR=\"$(localstatedir)\"
-
 libsupplicant_manager_la_LIBADD = \
 	$(top_builddir)/src/logging/libnm-logging.la \
 	$(DBUS_LIBS) \
diff --git a/src/supplicant-manager/tests/Makefile.am b/src/supplicant-manager/tests/Makefile.am
index 20ba9cc5..58132a60 100644
--- a/src/supplicant-manager/tests/Makefile.am
+++ b/src/supplicant-manager/tests/Makefile.am
@@ -1,22 +1,20 @@
 if ENABLE_TESTS
 
-INCLUDES = \
+noinst_PROGRAMS = test-supplicant-config
+
+test_supplicant_config_CPPFLAGS = \
 	-I$(top_srcdir)/include \
 	-I$(top_builddir)/include \
 	-I$(top_srcdir)/libnm-util \
 	-I$(top_builddir)/libnm-util \
 	-I$(top_srcdir)/src \
-	-I$(top_srcdir)/src/supplicant-manager
-
-noinst_PROGRAMS = test-supplicant-config
+	-I$(top_srcdir)/src/supplicant-manager \
+	$(GLIB_CFLAGS) \
+	$(DBUS_CFLAGS)
 
 test_supplicant_config_SOURCES = \
 	test-supplicant-config.c
 
-test_supplicant_config_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
-	$(DBUS_CFLAGS)
-
 test_supplicant_config_LDADD = \
 	$(top_builddir)/libnm-util/libnm-util.la \
 	$(top_builddir)/src/supplicant-manager/libsupplicant-manager.la \
diff --git a/src/supplicant-manager/tests/Makefile.in b/src/supplicant-manager/tests/Makefile.in
index dcd90d61..11dc6d5c 100644
--- a/src/supplicant-manager/tests/Makefile.in
+++ b/src/supplicant-manager/tests/Makefile.in
@@ -207,6 +207,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -229,6 +230,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -413,21 +415,19 @@ with_dhclient = @with_dhclient@
 with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
-@ENABLE_TESTS_TRUE@INCLUDES = \
+@ENABLE_TESTS_TRUE@test_supplicant_config_CPPFLAGS = \
 @ENABLE_TESTS_TRUE@	-I$(top_srcdir)/include \
 @ENABLE_TESTS_TRUE@	-I$(top_builddir)/include \
 @ENABLE_TESTS_TRUE@	-I$(top_srcdir)/libnm-util \
 @ENABLE_TESTS_TRUE@	-I$(top_builddir)/libnm-util \
 @ENABLE_TESTS_TRUE@	-I$(top_srcdir)/src \
-@ENABLE_TESTS_TRUE@	-I$(top_srcdir)/src/supplicant-manager
+@ENABLE_TESTS_TRUE@	-I$(top_srcdir)/src/supplicant-manager \
+@ENABLE_TESTS_TRUE@	$(GLIB_CFLAGS) \
+@ENABLE_TESTS_TRUE@	$(DBUS_CFLAGS)
 
 @ENABLE_TESTS_TRUE@test_supplicant_config_SOURCES = \
 @ENABLE_TESTS_TRUE@	test-supplicant-config.c
 
-@ENABLE_TESTS_TRUE@test_supplicant_config_CPPFLAGS = \
-@ENABLE_TESTS_TRUE@	$(GLIB_CFLAGS) \
-@ENABLE_TESTS_TRUE@	$(DBUS_CFLAGS)
-
 @ENABLE_TESTS_TRUE@test_supplicant_config_LDADD = \
 @ENABLE_TESTS_TRUE@	$(top_builddir)/libnm-util/libnm-util.la \
 @ENABLE_TESTS_TRUE@	$(top_builddir)/src/supplicant-manager/libsupplicant-manager.la \
diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am
index 8f406361..77e6c0f5 100644
--- a/src/tests/Makefile.am
+++ b/src/tests/Makefile.am
@@ -1,13 +1,15 @@
 if ENABLE_TESTS
 
-INCLUDES = \
+AM_CPPFLAGS = \
 	-I$(top_srcdir)/include \
 	-I$(top_builddir)/include \
 	-I$(top_srcdir)/libnm-util \
 	-I$(top_builddir)/libnm-util \
 	-I$(top_srcdir)/src/dhcp-manager \
 	-I$(top_srcdir)/src \
-	-I$(top_builddir)/src
+	-I$(top_builddir)/src \
+	$(GLIB_CFLAGS) \
+	$(DBUS_CFLAGS)
 
 noinst_PROGRAMS = \
 	test-dhcp-options \
@@ -20,8 +22,7 @@ test_dhcp_options_SOURCES = \
 	test-dhcp-options.c
 
 test_dhcp_options_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
-	$(DBUS_CFLAGS) \
+	$(AM_CPPFLAGS) \
 	-DDHCLIENT_PATH=\"$(DHCLIENT_PATH)\" \
 	-DDHCPCD_PATH=\"$(DHCPCD_PATH)\"
 
@@ -37,9 +38,6 @@ test_dhcp_options_LDADD = \
 test_policy_hosts_SOURCES = \
 	test-policy-hosts.c
 
-test_policy_hosts_CPPFLAGS = \
-	$(GLIB_CFLAGS)
-
 test_policy_hosts_LDADD = \
 	-ldl \
 	$(top_builddir)/src/libtest-policy-hosts.la \
@@ -50,10 +48,6 @@ test_policy_hosts_LDADD = \
 test_wifi_ap_utils_SOURCES = \
 	test-wifi-ap-utils.c
 
-test_wifi_ap_utils_CPPFLAGS = \
-	$(GLIB_CFLAGS) \
-	$(DBUS_CFLAGS)
-
 test_wifi_ap_utils_LDADD = \
 	$(top_builddir)/libnm-util/libnm-util.la \
 	$(top_builddir)/src/libtest-wifi-ap-utils.la \
diff --git a/src/tests/Makefile.in b/src/tests/Makefile.in
index c161a609..177cc4e9 100644
--- a/src/tests/Makefile.in
+++ b/src/tests/Makefile.in
@@ -118,12 +118,14 @@ am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 am__v_lt_1 = 
 am__test_policy_hosts_SOURCES_DIST = test-policy-hosts.c
-@ENABLE_TESTS_TRUE@am_test_policy_hosts_OBJECTS = test_policy_hosts-test-policy-hosts.$(OBJEXT)
+@ENABLE_TESTS_TRUE@am_test_policy_hosts_OBJECTS =  \
+@ENABLE_TESTS_TRUE@	test-policy-hosts.$(OBJEXT)
 test_policy_hosts_OBJECTS = $(am_test_policy_hosts_OBJECTS)
 @ENABLE_TESTS_TRUE@test_policy_hosts_DEPENDENCIES = $(top_builddir)/src/libtest-policy-hosts.la \
 @ENABLE_TESTS_TRUE@	$(am__DEPENDENCIES_1)
 am__test_wifi_ap_utils_SOURCES_DIST = test-wifi-ap-utils.c
-@ENABLE_TESTS_TRUE@am_test_wifi_ap_utils_OBJECTS = test_wifi_ap_utils-test-wifi-ap-utils.$(OBJEXT)
+@ENABLE_TESTS_TRUE@am_test_wifi_ap_utils_OBJECTS =  \
+@ENABLE_TESTS_TRUE@	test-wifi-ap-utils.$(OBJEXT)
 test_wifi_ap_utils_OBJECTS = $(am_test_wifi_ap_utils_OBJECTS)
 @ENABLE_TESTS_TRUE@test_wifi_ap_utils_DEPENDENCIES =  \
 @ENABLE_TESTS_TRUE@	$(top_builddir)/libnm-util/libnm-util.la \
@@ -225,6 +227,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -247,6 +250,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -431,14 +435,16 @@ with_dhclient = @with_dhclient@
 with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
-@ENABLE_TESTS_TRUE@INCLUDES = \
+@ENABLE_TESTS_TRUE@AM_CPPFLAGS = \
 @ENABLE_TESTS_TRUE@	-I$(top_srcdir)/include \
 @ENABLE_TESTS_TRUE@	-I$(top_builddir)/include \
 @ENABLE_TESTS_TRUE@	-I$(top_srcdir)/libnm-util \
 @ENABLE_TESTS_TRUE@	-I$(top_builddir)/libnm-util \
 @ENABLE_TESTS_TRUE@	-I$(top_srcdir)/src/dhcp-manager \
 @ENABLE_TESTS_TRUE@	-I$(top_srcdir)/src \
-@ENABLE_TESTS_TRUE@	-I$(top_builddir)/src
+@ENABLE_TESTS_TRUE@	-I$(top_builddir)/src \
+@ENABLE_TESTS_TRUE@	$(GLIB_CFLAGS) \
+@ENABLE_TESTS_TRUE@	$(DBUS_CFLAGS)
 
 
 ####### DHCP options test #######
@@ -446,8 +452,7 @@ with_resolvconf = @with_resolvconf@
 @ENABLE_TESTS_TRUE@	test-dhcp-options.c
 
 @ENABLE_TESTS_TRUE@test_dhcp_options_CPPFLAGS = \
-@ENABLE_TESTS_TRUE@	$(GLIB_CFLAGS) \
-@ENABLE_TESTS_TRUE@	$(DBUS_CFLAGS) \
+@ENABLE_TESTS_TRUE@	$(AM_CPPFLAGS) \
 @ENABLE_TESTS_TRUE@	-DDHCLIENT_PATH=\"$(DHCLIENT_PATH)\" \
 @ENABLE_TESTS_TRUE@	-DDHCPCD_PATH=\"$(DHCPCD_PATH)\"
 
@@ -463,9 +468,6 @@ with_resolvconf = @with_resolvconf@
 @ENABLE_TESTS_TRUE@test_policy_hosts_SOURCES = \
 @ENABLE_TESTS_TRUE@	test-policy-hosts.c
 
-@ENABLE_TESTS_TRUE@test_policy_hosts_CPPFLAGS = \
-@ENABLE_TESTS_TRUE@	$(GLIB_CFLAGS)
-
 @ENABLE_TESTS_TRUE@test_policy_hosts_LDADD = \
 @ENABLE_TESTS_TRUE@	-ldl \
 @ENABLE_TESTS_TRUE@	$(top_builddir)/src/libtest-policy-hosts.la \
@@ -476,10 +478,6 @@ with_resolvconf = @with_resolvconf@
 @ENABLE_TESTS_TRUE@test_wifi_ap_utils_SOURCES = \
 @ENABLE_TESTS_TRUE@	test-wifi-ap-utils.c
 
-@ENABLE_TESTS_TRUE@test_wifi_ap_utils_CPPFLAGS = \
-@ENABLE_TESTS_TRUE@	$(GLIB_CFLAGS) \
-@ENABLE_TESTS_TRUE@	$(DBUS_CFLAGS)
-
 @ENABLE_TESTS_TRUE@test_wifi_ap_utils_LDADD = \
 @ENABLE_TESTS_TRUE@	$(top_builddir)/libnm-util/libnm-util.la \
 @ENABLE_TESTS_TRUE@	$(top_builddir)/src/libtest-wifi-ap-utils.la \
@@ -551,9 +549,9 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-policy-hosts.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wifi-ap-utils.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_dhcp_options-test-dhcp-options.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_policy_hosts-test-policy-hosts.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_wifi_ap_utils-test-wifi-ap-utils.Po@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -590,34 +588,6 @@ test_dhcp_options-test-dhcp-options.obj: test-dhcp-options.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_dhcp_options_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_dhcp_options-test-dhcp-options.obj `if test -f 'test-dhcp-options.c'; then $(CYGPATH_W) 'test-dhcp-options.c'; else $(CYGPATH_W) '$(srcdir)/test-dhcp-options.c'; fi`
 
-test_policy_hosts-test-policy-hosts.o: test-policy-hosts.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_policy_hosts_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_policy_hosts-test-policy-hosts.o -MD -MP -MF $(DEPDIR)/test_policy_hosts-test-policy-hosts.Tpo -c -o test_policy_hosts-test-policy-hosts.o `test -f 'test-policy-hosts.c' || echo '$(srcdir)/'`test-policy-hosts.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/test_policy_hosts-test-policy-hosts.Tpo $(DEPDIR)/test_policy_hosts-test-policy-hosts.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test-policy-hosts.c' object='test_policy_hosts-test-policy-hosts.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_policy_hosts_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_policy_hosts-test-policy-hosts.o `test -f 'test-policy-hosts.c' || echo '$(srcdir)/'`test-policy-hosts.c
-
-test_policy_hosts-test-policy-hosts.obj: test-policy-hosts.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_policy_hosts_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_policy_hosts-test-policy-hosts.obj -MD -MP -MF $(DEPDIR)/test_policy_hosts-test-policy-hosts.Tpo -c -o test_policy_hosts-test-policy-hosts.obj `if test -f 'test-policy-hosts.c'; then $(CYGPATH_W) 'test-policy-hosts.c'; else $(CYGPATH_W) '$(srcdir)/test-policy-hosts.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/test_policy_hosts-test-policy-hosts.Tpo $(DEPDIR)/test_policy_hosts-test-policy-hosts.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test-policy-hosts.c' object='test_policy_hosts-test-policy-hosts.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_policy_hosts_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_policy_hosts-test-policy-hosts.obj `if test -f 'test-policy-hosts.c'; then $(CYGPATH_W) 'test-policy-hosts.c'; else $(CYGPATH_W) '$(srcdir)/test-policy-hosts.c'; fi`
-
-test_wifi_ap_utils-test-wifi-ap-utils.o: test-wifi-ap-utils.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_wifi_ap_utils_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_wifi_ap_utils-test-wifi-ap-utils.o -MD -MP -MF $(DEPDIR)/test_wifi_ap_utils-test-wifi-ap-utils.Tpo -c -o test_wifi_ap_utils-test-wifi-ap-utils.o `test -f 'test-wifi-ap-utils.c' || echo '$(srcdir)/'`test-wifi-ap-utils.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/test_wifi_ap_utils-test-wifi-ap-utils.Tpo $(DEPDIR)/test_wifi_ap_utils-test-wifi-ap-utils.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test-wifi-ap-utils.c' object='test_wifi_ap_utils-test-wifi-ap-utils.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_wifi_ap_utils_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_wifi_ap_utils-test-wifi-ap-utils.o `test -f 'test-wifi-ap-utils.c' || echo '$(srcdir)/'`test-wifi-ap-utils.c
-
-test_wifi_ap_utils-test-wifi-ap-utils.obj: test-wifi-ap-utils.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_wifi_ap_utils_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_wifi_ap_utils-test-wifi-ap-utils.obj -MD -MP -MF $(DEPDIR)/test_wifi_ap_utils-test-wifi-ap-utils.Tpo -c -o test_wifi_ap_utils-test-wifi-ap-utils.obj `if test -f 'test-wifi-ap-utils.c'; then $(CYGPATH_W) 'test-wifi-ap-utils.c'; else $(CYGPATH_W) '$(srcdir)/test-wifi-ap-utils.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/test_wifi_ap_utils-test-wifi-ap-utils.Tpo $(DEPDIR)/test_wifi_ap_utils-test-wifi-ap-utils.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test-wifi-ap-utils.c' object='test_wifi_ap_utils-test-wifi-ap-utils.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_wifi_ap_utils_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_wifi_ap_utils-test-wifi-ap-utils.obj `if test -f 'test-wifi-ap-utils.c'; then $(CYGPATH_W) 'test-wifi-ap-utils.c'; else $(CYGPATH_W) '$(srcdir)/test-wifi-ap-utils.c'; fi`
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
diff --git a/src/vpn-manager/Makefile.am b/src/vpn-manager/Makefile.am
index a525ce20..94809ddd 100644
--- a/src/vpn-manager/Makefile.am
+++ b/src/vpn-manager/Makefile.am
@@ -1,4 +1,14 @@
-INCLUDES = \
+noinst_LTLIBRARIES = libvpn-manager.la
+
+libvpn_manager_la_SOURCES = \
+	nm-vpn-manager.c \
+	nm-vpn-manager.h \
+	nm-vpn-service.c \
+	nm-vpn-service.h \
+	nm-vpn-connection.c \
+	nm-vpn-connection.h
+
+libvpn_manager_la_CPPFLAGS = \
 	-I${top_srcdir} \
 	-I${top_builddir}/include \
 	-I${top_srcdir}/include \
@@ -10,24 +20,11 @@ INCLUDES = \
 	-I${top_srcdir}/src/posix-signals \
 	-I${top_srcdir}/src \
 	-I${top_srcdir}/src/dns-manager \
+	$(LIBNL_CFLAGS) \
+	$(DBUS_CFLAGS) \
+	$(GLIB_CFLAGS) \
 	-DVPN_NAME_FILES_DIR=\""$(sysconfdir)/NetworkManager/VPN"\"
 
-
-noinst_LTLIBRARIES = libvpn-manager.la
-
-libvpn_manager_la_SOURCES = \
-	nm-vpn-manager.c \
-	nm-vpn-manager.h \
-	nm-vpn-service.c \
-	nm-vpn-service.h \
-	nm-vpn-connection.c \
-	nm-vpn-connection.h
-
-libvpn_manager_la_CPPFLAGS =	\
-	$(LIBNL_CFLAGS)		\
-	$(DBUS_CFLAGS)		\
-	$(GLIB_CFLAGS)
-
 libvpn_manager_la_LIBADD = \
 	$(top_builddir)/src/generated/libnm-generated.la \
 	$(top_builddir)/src/logging/libnm-logging.la \
diff --git a/src/vpn-manager/Makefile.in b/src/vpn-manager/Makefile.in
index 5457536c..94e33078 100644
--- a/src/vpn-manager/Makefile.in
+++ b/src/vpn-manager/Makefile.in
@@ -209,6 +209,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -231,6 +232,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -415,7 +417,16 @@ with_dhclient = @with_dhclient@
 with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
-INCLUDES = \
+noinst_LTLIBRARIES = libvpn-manager.la
+libvpn_manager_la_SOURCES = \
+	nm-vpn-manager.c \
+	nm-vpn-manager.h \
+	nm-vpn-service.c \
+	nm-vpn-service.h \
+	nm-vpn-connection.c \
+	nm-vpn-connection.h
+
+libvpn_manager_la_CPPFLAGS = \
 	-I${top_srcdir} \
 	-I${top_builddir}/include \
 	-I${top_srcdir}/include \
@@ -427,22 +438,11 @@ INCLUDES = \
 	-I${top_srcdir}/src/posix-signals \
 	-I${top_srcdir}/src \
 	-I${top_srcdir}/src/dns-manager \
+	$(LIBNL_CFLAGS) \
+	$(DBUS_CFLAGS) \
+	$(GLIB_CFLAGS) \
 	-DVPN_NAME_FILES_DIR=\""$(sysconfdir)/NetworkManager/VPN"\"
 
-noinst_LTLIBRARIES = libvpn-manager.la
-libvpn_manager_la_SOURCES = \
-	nm-vpn-manager.c \
-	nm-vpn-manager.h \
-	nm-vpn-service.c \
-	nm-vpn-service.h \
-	nm-vpn-connection.c \
-	nm-vpn-connection.h
-
-libvpn_manager_la_CPPFLAGS = \
-	$(LIBNL_CFLAGS)		\
-	$(DBUS_CFLAGS)		\
-	$(GLIB_CFLAGS)
-
 libvpn_manager_la_LIBADD = \
 	$(top_builddir)/src/generated/libnm-generated.la \
 	$(top_builddir)/src/logging/libnm-logging.la \
diff --git a/src/wifi/Makefile.am b/src/wifi/Makefile.am
index c9a1b474..41007432 100644
--- a/src/wifi/Makefile.am
+++ b/src/wifi/Makefile.am
@@ -1,11 +1,3 @@
-INCLUDES = \
-	-I${top_srcdir}/include \
-	-I${top_builddir}/include \
-	-I${top_srcdir}/src/logging \
-	-I${top_srcdir}/libnm-util \
-	-I${top_builddir}/libnm-util \
-	-I${top_srcdir}/src
-
 noinst_LTLIBRARIES = libwifi-utils.la
 
 libwifi_utils_la_SOURCES = \
@@ -20,6 +12,12 @@ libwifi_utils_la_SOURCES += wifi-utils-wext.c wifi-utils-wext.h
 endif
 
 libwifi_utils_la_CPPFLAGS = \
+	-I${top_srcdir}/include \
+	-I${top_builddir}/include \
+	-I${top_srcdir}/src/logging \
+	-I${top_srcdir}/libnm-util \
+	-I${top_builddir}/libnm-util \
+	-I${top_srcdir}/src \
 	$(GLIB_CFLAGS) \
 	$(LIBNL_CFLAGS)
 
diff --git a/src/wifi/Makefile.in b/src/wifi/Makefile.in
index 20ccb537..cace5d68 100644
--- a/src/wifi/Makefile.in
+++ b/src/wifi/Makefile.in
@@ -211,6 +211,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -233,6 +234,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -417,19 +419,17 @@ with_dhclient = @with_dhclient@
 with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
-INCLUDES = \
-	-I${top_srcdir}/include \
-	-I${top_builddir}/include \
-	-I${top_srcdir}/src/logging \
-	-I${top_srcdir}/libnm-util \
-	-I${top_builddir}/libnm-util \
-	-I${top_srcdir}/src
-
 noinst_LTLIBRARIES = libwifi-utils.la
 libwifi_utils_la_SOURCES = wifi-utils.c wifi-utils.h \
 	wifi-utils-private.h wifi-utils-nl80211.c wifi-utils-nl80211.h \
 	$(am__append_1)
 libwifi_utils_la_CPPFLAGS = \
+	-I${top_srcdir}/include \
+	-I${top_builddir}/include \
+	-I${top_srcdir}/src/logging \
+	-I${top_srcdir}/libnm-util \
+	-I${top_builddir}/libnm-util \
+	-I${top_srcdir}/src \
 	$(GLIB_CFLAGS) \
 	$(LIBNL_CFLAGS)
 
diff --git a/src/wifi/wifi-utils-nl80211.c b/src/wifi/wifi-utils-nl80211.c
index 486a6951..5f909c44 100644
--- a/src/wifi/wifi-utils-nl80211.c
+++ b/src/wifi/wifi-utils-nl80211.c
@@ -132,6 +132,15 @@ _nl80211_send_and_recv (struct nl_sock *nl_sock,
 	while (!done) {
 		err = nl_recvmsgs (nl_sock, cb);
 		if (err && err != -NLE_AGAIN) {
+			/* Kernel scan list can change while we are dumping it, as new scan
+			 * results from H/W can arrive. BSS info is assured to be consistent
+			 * and we don't need consistent view of whole scan list. Hence do
+			 * not warn on DUMP_INTR error for get scan command.
+			 */
+			if (err == -NLE_DUMP_INTR &&
+			    genlmsg_hdr(nlmsg_hdr(msg))->cmd == NL80211_CMD_GET_SCAN)
+				break;
+
 			nm_log_warn (LOGD_WIFI, "nl_recvmsgs() error: (%d) %s",
 			             err, nl_geterror (err));
 			break;
diff --git a/src/wimax/Makefile.am b/src/wimax/Makefile.am
index caf017d8..55c7046b 100644
--- a/src/wimax/Makefile.am
+++ b/src/wimax/Makefile.am
@@ -1,13 +1,3 @@
-INCLUDES = \
-	-I${top_srcdir}/src \
-	-I${top_builddir}/src/generated \
-	-I${top_srcdir}/src/generated \
-	-I${top_srcdir}/src/logging \
-	-I${top_builddir}/include \
-	-I${top_srcdir}/include \
-	-I${top_builddir}/libnm-util \
-	-I${top_srcdir}/libnm-util
-
 pkglib_LTLIBRARIES = libnm-device-plugin-wimax.la
 
 libnm_device_plugin_wimax_la_SOURCES = \
@@ -23,6 +13,14 @@ libnm_device_plugin_wimax_la_SOURCES = \
 	iwmxsdk.h
 
 libnm_device_plugin_wimax_la_CPPFLAGS = \
+	-I${top_srcdir}/src \
+	-I${top_builddir}/src/generated \
+	-I${top_srcdir}/src/generated \
+	-I${top_srcdir}/src/logging \
+	-I${top_builddir}/include \
+	-I${top_srcdir}/include \
+	-I${top_builddir}/libnm-util \
+	-I${top_srcdir}/libnm-util \
 	$(DBUS_CFLAGS) \
 	$(IWMX_SDK_CFLAGS) \
 	$(LIBNL_CFLAGS) \
diff --git a/src/wimax/Makefile.in b/src/wimax/Makefile.in
index aacd5abb..5210414d 100644
--- a/src/wimax/Makefile.in
+++ b/src/wimax/Makefile.in
@@ -242,6 +242,7 @@ DEPDIR = @DEPDIR@
 DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCPCD_PATH = @DHCPCD_PATH@
 DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -264,6 +265,7 @@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -448,16 +450,6 @@ with_dhclient = @with_dhclient@
 with_dhcpcd = @with_dhcpcd@
 with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
-INCLUDES = \
-	-I${top_srcdir}/src \
-	-I${top_builddir}/src/generated \
-	-I${top_srcdir}/src/generated \
-	-I${top_srcdir}/src/logging \
-	-I${top_builddir}/include \
-	-I${top_srcdir}/include \
-	-I${top_builddir}/libnm-util \
-	-I${top_srcdir}/libnm-util
-
 pkglib_LTLIBRARIES = libnm-device-plugin-wimax.la
 libnm_device_plugin_wimax_la_SOURCES = \
 	nm-wimax-factory.c \
@@ -472,6 +464,14 @@ libnm_device_plugin_wimax_la_SOURCES = \
 	iwmxsdk.h
 
 libnm_device_plugin_wimax_la_CPPFLAGS = \
+	-I${top_srcdir}/src \
+	-I${top_builddir}/src/generated \
+	-I${top_srcdir}/src/generated \
+	-I${top_srcdir}/src/logging \
+	-I${top_builddir}/include \
+	-I${top_srcdir}/include \
+	-I${top_builddir}/libnm-util \
+	-I${top_srcdir}/libnm-util \
 	$(DBUS_CFLAGS) \
 	$(IWMX_SDK_CFLAGS) \
 	$(LIBNL_CFLAGS) \