summary refs log tree commit diff
path: root/libnm-core
diff options
context:
space:
mode:
Diffstat (limited to 'libnm-core')
-rw-r--r--libnm-core/Makefile.am3
-rw-r--r--libnm-core/Makefile.in17
-rw-r--r--libnm-core/Makefile.libnm-core3
-rw-r--r--libnm-core/nm-core-enum-types.c6
-rw-r--r--libnm-core/nm-core-internal.h1
-rw-r--r--libnm-core/nm-core-types.h1
-rw-r--r--libnm-core/nm-dbus-interface.h10
-rw-r--r--libnm-core/nm-errors.c1
-rw-r--r--libnm-core/nm-keyfile-reader.c24
-rw-r--r--libnm-core/nm-keyfile-writer.c25
-rw-r--r--libnm-core/nm-setting-adsl.c7
-rw-r--r--libnm-core/nm-setting-cdma.c2
-rw-r--r--libnm-core/nm-setting-ip-config.c6
-rw-r--r--libnm-core/nm-setting-ip6-config.c1
-rw-r--r--libnm-core/nm-setting-olpc-mesh.c1
-rw-r--r--libnm-core/nm-setting-vlan.c8
-rw-r--r--libnm-core/nm-setting-wired.c11
-rw-r--r--libnm-core/nm-setting-wired.h19
-rw-r--r--libnm-core/nm-setting-wireless.c1
-rw-r--r--libnm-core/nm-setting-wireless.h1
-rw-r--r--libnm-core/nm-utils.c4
-rw-r--r--libnm-core/nm-utils.h1
-rw-r--r--libnm-core/nm-version.h60
-rw-r--r--libnm-core/nm-version.h.in141
-rw-r--r--libnm-core/tests/Makefile.am1
-rw-r--r--libnm-core/tests/Makefile.in2
-rw-r--r--libnm-core/tests/test-general.c28
27 files changed, 125 insertions, 260 deletions
diff --git a/libnm-core/Makefile.am b/libnm-core/Makefile.am
index 8fab84bc..d76a48da 100644
--- a/libnm-core/Makefile.am
+++ b/libnm-core/Makefile.am
@@ -4,6 +4,7 @@ SUBDIRS = . tests
 
 AM_CPPFLAGS = \
 	-I${top_srcdir}/include \
+	-I${top_builddir}/include \
 	-DG_LOG_DOMAIN=\""libnm"\" \
 	-DLOCALEDIR=\"$(datadir)/locale\" \
 	-DNETWORKMANAGER_COMPILATION \
@@ -24,7 +25,7 @@ libnm_core_la_SOURCES =			\
 	$(libnm_core_private_headers)
 
 GLIB_GENERATED = nm-core-enum-types.h nm-core-enum-types.c
-nm_core_enum_types_sources = $(notdir $(libnminclude_HEADERS))
+nm_core_enum_types_sources = $(filter-out %nm-core-enum-types.h,$(libnminclude_HEADERS))
 GLIB_MKENUMS_H_FLAGS = --identifier-prefix NM
 GLIB_MKENUMS_C_FLAGS = --identifier-prefix NM
 
diff --git a/libnm-core/Makefile.in b/libnm-core/Makefile.in
index 6f502e38..f4b6bcd0 100644
--- a/libnm-core/Makefile.in
+++ b/libnm-core/Makefile.in
@@ -120,7 +120,7 @@ DIST_COMMON = $(srcdir)/Makefile.am $(libnminclude_HEADERS) \
 	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES = nm-version.h
+CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -288,7 +288,7 @@ ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
 am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.libnm-core \
-	$(srcdir)/nm-version.h.in $(top_srcdir)/build-aux/depcomp
+	$(top_srcdir)/build-aux/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -437,6 +437,7 @@ LOG_DRIVER = @LOG_DRIVER@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -578,16 +579,17 @@ with_netconfig = @with_netconfig@
 with_resolvconf = @with_resolvconf@
 with_valgrind = @with_valgrind@
 SUBDIRS = . tests
-AM_CPPFLAGS = -I${top_srcdir}/include -DG_LOG_DOMAIN=\""libnm"\" \
-	-DLOCALEDIR=\"$(datadir)/locale\" -DNETWORKMANAGER_COMPILATION \
+AM_CPPFLAGS = -I${top_srcdir}/include -I${top_builddir}/include \
+	-DG_LOG_DOMAIN=\""libnm"\" -DLOCALEDIR=\"$(datadir)/locale\" \
+	-DNETWORKMANAGER_COMPILATION \
 	-DNM_VERSION_MAX_ALLOWED=NM_VERSION_NEXT_STABLE $(GLIB_CFLAGS) \
 	$(am__append_1) $(am__append_4)
 noinst_LTLIBRARIES = libnm-core.la
 core = $(top_srcdir)/libnm-core
 core_build = $(top_builddir)/libnm-core
 libnm_core_headers = \
+	$(top_builddir)/include/nm-version-macros.h \
 	$(core_build)/nm-core-enum-types.h	\
-	$(core_build)/nm-version.h		\
 	$(core)/nm-connection.h			\
 	$(core)/nm-core-types.h			\
 	$(core)/nm-dbus-interface.h		\
@@ -622,6 +624,7 @@ libnm_core_headers = \
 	$(core)/nm-setting.h			\
 	$(core)/nm-simple-connection.h		\
 	$(core)/nm-utils.h			\
+	$(core)/nm-version.h \
 	$(core)/nm-vpn-dbus-interface.h
 
 libnm_core_private_headers = \
@@ -682,7 +685,7 @@ libnminclude_HEADERS = $(libnm_core_headers)
 libnm_core_la_SOURCES = $(libnm_core_sources) \
 	$(libnm_core_private_headers) $(am__append_2) $(am__append_5)
 GLIB_GENERATED = nm-core-enum-types.h nm-core-enum-types.c
-nm_core_enum_types_sources = $(notdir $(libnminclude_HEADERS))
+nm_core_enum_types_sources = $(filter-out %nm-core-enum-types.h,$(libnminclude_HEADERS))
 GLIB_MKENUMS_H_FLAGS = --identifier-prefix NM
 GLIB_MKENUMS_C_FLAGS = --identifier-prefix NM
 libnm_core_la_LIBADD = $(GLIB_LIBS) $(UUID_LIBS) $(am__append_3) \
@@ -724,8 +727,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
-nm-version.h: $(top_builddir)/config.status $(srcdir)/nm-version.h.in
-	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 
 clean-noinstLTLIBRARIES:
 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
diff --git a/libnm-core/Makefile.libnm-core b/libnm-core/Makefile.libnm-core
index 09a80c71..0b606f32 100644
--- a/libnm-core/Makefile.libnm-core
+++ b/libnm-core/Makefile.libnm-core
@@ -6,8 +6,8 @@ core = $(top_srcdir)/libnm-core
 core_build = $(top_builddir)/libnm-core
 
 libnm_core_headers =				\
+	$(top_builddir)/include/nm-version-macros.h \
 	$(core_build)/nm-core-enum-types.h	\
-	$(core_build)/nm-version.h		\
 	$(core)/nm-connection.h			\
 	$(core)/nm-core-types.h			\
 	$(core)/nm-dbus-interface.h		\
@@ -42,6 +42,7 @@ libnm_core_headers =				\
 	$(core)/nm-setting.h			\
 	$(core)/nm-simple-connection.h		\
 	$(core)/nm-utils.h			\
+	$(core)/nm-version.h \
 	$(core)/nm-vpn-dbus-interface.h
 
 libnm_core_private_headers =			\
diff --git a/libnm-core/nm-core-enum-types.c b/libnm-core/nm-core-enum-types.c
index a9e4266a..d2281653 100644
--- a/libnm-core/nm-core-enum-types.c
+++ b/libnm-core/nm-core-enum-types.c
@@ -5,7 +5,7 @@
 
 #include "nm-core-enum-types.h"
 
-#include "nm-version.h" 
+#include "nm-version-macros.h" 
 #include "nm-connection.h" 
 #include "nm-core-types.h" 
 #include "nm-dbus-interface.h" 
@@ -40,6 +40,7 @@
 #include "nm-setting.h" 
 #include "nm-simple-connection.h" 
 #include "nm-utils.h" 
+#include "nm-version.h" 
 #include "nm-vpn-dbus-interface.h"
 
 GType
@@ -868,13 +869,14 @@ nm_setting_wired_wake_on_lan_get_type (void)
   if (g_once_init_enter (&g_define_type_id__volatile))
     {
       static const GFlagsValue values[] = {
-        { NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT, "NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT", "default" },
         { NM_SETTING_WIRED_WAKE_ON_LAN_PHY, "NM_SETTING_WIRED_WAKE_ON_LAN_PHY", "phy" },
         { NM_SETTING_WIRED_WAKE_ON_LAN_UNICAST, "NM_SETTING_WIRED_WAKE_ON_LAN_UNICAST", "unicast" },
         { NM_SETTING_WIRED_WAKE_ON_LAN_MULTICAST, "NM_SETTING_WIRED_WAKE_ON_LAN_MULTICAST", "multicast" },
         { NM_SETTING_WIRED_WAKE_ON_LAN_BROADCAST, "NM_SETTING_WIRED_WAKE_ON_LAN_BROADCAST", "broadcast" },
         { NM_SETTING_WIRED_WAKE_ON_LAN_ARP, "NM_SETTING_WIRED_WAKE_ON_LAN_ARP", "arp" },
         { NM_SETTING_WIRED_WAKE_ON_LAN_MAGIC, "NM_SETTING_WIRED_WAKE_ON_LAN_MAGIC", "magic" },
+        { NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT, "NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT", "default" },
+        { NM_SETTING_WIRED_WAKE_ON_LAN_IGNORE, "NM_SETTING_WIRED_WAKE_ON_LAN_IGNORE", "ignore" },
         { 0, NULL, NULL }
       };
       GType g_define_type_id =
diff --git a/libnm-core/nm-core-internal.h b/libnm-core/nm-core-internal.h
index 73a379c3..56cb7806 100644
--- a/libnm-core/nm-core-internal.h
+++ b/libnm-core/nm-core-internal.h
@@ -35,7 +35,6 @@
 
 #include "nm-connection.h"
 #include "nm-core-enum-types.h"
-#include "nm-dbus-interface.h"
 #include "nm-setting-8021x.h"
 #include "nm-setting-adsl.h"
 #include "nm-setting-bluetooth.h"
diff --git a/libnm-core/nm-core-types.h b/libnm-core/nm-core-types.h
index 524d6396..19388c5b 100644
--- a/libnm-core/nm-core-types.h
+++ b/libnm-core/nm-core-types.h
@@ -23,6 +23,7 @@
 
 #include <glib-object.h>
 
+#include <nm-version.h>
 #include <nm-dbus-interface.h>
 #include <nm-core-enum-types.h>
 
diff --git a/libnm-core/nm-dbus-interface.h b/libnm-core/nm-dbus-interface.h
index 8c5cd3c4..ac20fa2e 100644
--- a/libnm-core/nm-dbus-interface.h
+++ b/libnm-core/nm-dbus-interface.h
@@ -26,7 +26,11 @@
 #ifndef __NM_DBUS_INTERFACE_H__
 #define __NM_DBUS_INTERFACE_H__
 
-#include "nm-version.h"
+/* This header must not include glib or libnm. */
+
+#ifndef NM_VERSION_H
+#define NM_AVAILABLE_IN_1_0_6
+#endif
 
 /*
  * dbus services details
@@ -639,4 +643,8 @@ typedef enum /*< flags >*/ {
 	NM_SECRET_AGENT_CAPABILITY_LAST = NM_SECRET_AGENT_CAPABILITY_VPN_HINTS
 } NMSecretAgentCapabilities;
 
+#ifndef NM_VERSION_H
+#undef NM_AVAILABLE_IN_1_0_6
+#endif
+
 #endif /* __NM_DBUS_INTERFACE_H__ */
diff --git a/libnm-core/nm-errors.c b/libnm-core/nm-errors.c
index 3b1b1bc9..222f2de6 100644
--- a/libnm-core/nm-errors.c
+++ b/libnm-core/nm-errors.c
@@ -25,7 +25,6 @@
 
 #include "nm-errors.h"
 #include "nm-glib-compat.h"
-#include "nm-dbus-interface.h"
 #include "nm-vpn-dbus-interface.h"
 #include "nm-core-internal.h"
 
diff --git a/libnm-core/nm-keyfile-reader.c b/libnm-core/nm-keyfile-reader.c
index 353804f9..9d8c8734 100644
--- a/libnm-core/nm-keyfile-reader.c
+++ b/libnm-core/nm-keyfile-reader.c
@@ -1253,6 +1253,15 @@ static KeyParser key_parsers[] = {
 };
 
 static void
+set_default_for_missing_key (NMSetting *setting, const char *property)
+{
+	/* Set a value different from the default value of the property's spec */
+
+	if (NM_IS_SETTING_VLAN (setting) && !strcmp (property, NM_SETTING_VLAN_FLAGS))
+		g_object_set (setting, property, 0, NULL);
+}
+
+static void
 read_one_setting_value (NMSetting *setting,
                         const char *key,
                         const GValue *value,
@@ -1316,6 +1325,9 @@ read_one_setting_value (NMSetting *setting,
 			                  err->message))
 				goto out_error;
 		}
+
+		/* Allow default values different than in property spec */
+		set_default_for_missing_key (setting, key);
 		return;
 	}
 
@@ -1651,6 +1663,18 @@ nm_keyfile_read (GKeyFile *keyfile,
 		}
 	}
 
+	/* Make sure that if [vlan] group was missing we set vlan.flags to 0
+	 * for backwards compatibility */
+	if (nm_connection_is_type (connection, NM_SETTING_VLAN_SETTING_NAME)) {
+		if (!nm_connection_get_setting_vlan (connection)) {
+			NMSettingVlan *s_vlan;
+
+			s_vlan = NM_SETTING_VLAN (nm_setting_vlan_new ());
+			g_object_set (s_vlan, NM_SETTING_VLAN_FLAGS, 0, NULL);
+			nm_connection_add_setting (connection, NM_SETTING (s_vlan));
+		}
+	}
+
 	return connection;
 out_error:
 	g_propagate_error (error, info.error);
diff --git a/libnm-core/nm-keyfile-writer.c b/libnm-core/nm-keyfile-writer.c
index ff433b26..1dac5c32 100644
--- a/libnm-core/nm-keyfile-writer.c
+++ b/libnm-core/nm-keyfile-writer.c
@@ -30,18 +30,7 @@
 #include <string.h>
 #include <glib/gi18n-lib.h>
 
-#include "nm-setting.h"
-#include "nm-setting-connection.h"
-#include "nm-setting-ip4-config.h"
-#include "nm-setting-ip6-config.h"
-#include "nm-setting-vpn.h"
-#include "nm-setting-wired.h"
-#include "nm-setting-wireless.h"
-#include "nm-setting-ip4-config.h"
-#include "nm-setting-bluetooth.h"
-#include "nm-setting-8021x.h"
-#include "nm-utils.h"
-
+#include "nm-core-internal.h"
 #include "gsystem-local-alloc.h"
 #include "nm-glib-compat.h"
 #include "nm-keyfile-internal.h"
@@ -598,6 +587,15 @@ static KeyWriter key_writers[] = {
 	{ NULL, NULL, NULL }
 };
 
+static gboolean
+can_omit_default_value (NMSetting *setting, const char *property)
+{
+	if (NM_IS_SETTING_VLAN (setting) && !strcmp (property, NM_SETTING_VLAN_FLAGS))
+		return FALSE;
+
+	return TRUE;
+}
+
 static void
 write_setting_value (NMSetting *setting,
                      const char *key,
@@ -628,7 +626,8 @@ write_setting_value (NMSetting *setting,
 	/* If the value is the default value, remove the item from the keyfile */
 	pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (setting), key);
 	if (pspec) {
-		if (g_param_value_defaults (pspec, (GValue *) value)) {
+		if (   can_omit_default_value (setting, key)
+		    && g_param_value_defaults (pspec, (GValue *) value)) {
 			g_key_file_remove_key (info->keyfile, setting_name, key, NULL);
 			return;
 		}
diff --git a/libnm-core/nm-setting-adsl.c b/libnm-core/nm-setting-adsl.c
index 2e71f8e7..7d78f060 100644
--- a/libnm-core/nm-setting-adsl.c
+++ b/libnm-core/nm-setting-adsl.c
@@ -267,6 +267,7 @@ set_property (GObject *object, guint prop_id,
               const GValue *value, GParamSpec *pspec)
 {
 	NMSettingAdslPrivate *priv = NM_SETTING_ADSL_GET_PRIVATE (object);
+	const char *str;
 
 	switch (prop_id) {
 	case PROP_USERNAME:
@@ -282,11 +283,13 @@ set_property (GObject *object, guint prop_id,
 		break;
 	case PROP_PROTOCOL:
 		g_free (priv->protocol);
-		priv->protocol = g_ascii_strdown (g_value_get_string (value), -1);
+		str = g_value_get_string (value);
+		priv->protocol = str ? g_ascii_strdown (str, -1) : NULL;
 		break;
 	case PROP_ENCAPSULATION:
 		g_free (priv->encapsulation);
-		priv->encapsulation = g_ascii_strdown (g_value_get_string (value), -1);
+		str = g_value_get_string (value);
+		priv->encapsulation = str ? g_ascii_strdown (str, -1) : NULL;
 		break;
 	case PROP_VPI:
 		priv->vpi = g_value_get_uint (value);
diff --git a/libnm-core/nm-setting-cdma.c b/libnm-core/nm-setting-cdma.c
index ecc387c8..6fd2ad8b 100644
--- a/libnm-core/nm-setting-cdma.c
+++ b/libnm-core/nm-setting-cdma.c
@@ -146,7 +146,7 @@ verify (NMSetting *setting, NMConnection *connection, GError **error)
 		g_set_error_literal (error,
 		                     NM_CONNECTION_ERROR,
 		                     NM_CONNECTION_ERROR_INVALID_PROPERTY,
-		                     _("property is empty'"));
+		                     _("property is empty"));
 		g_prefix_error (error, "%s.%s: ", NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_NUMBER);
 		return FALSE;
 	}
diff --git a/libnm-core/nm-setting-ip-config.c b/libnm-core/nm-setting-ip-config.c
index 4b73d5fd..3a67ca32 100644
--- a/libnm-core/nm-setting-ip-config.c
+++ b/libnm-core/nm-setting-ip-config.c
@@ -74,7 +74,7 @@ valid_ip (int family, const char *ip, GError **error)
 {
 	if (!ip) {
 		g_set_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_FAILED,
-		             family == AF_INET ? _("Missing IPv4 address") : _("Missing IPv6 address'"));
+		             family == AF_INET ? _("Missing IPv4 address") : _("Missing IPv6 address"));
 		return FALSE;
 	}
 	if (!nm_utils_ipaddr_valid (family, ip)) {
@@ -1415,7 +1415,7 @@ nm_setting_ip_config_get_num_addresses (NMSettingIPConfig *setting)
  * @setting: the #NMSettingIPConfig
  * @i: index number of the address to return
  *
- * Returns: the address at index @i
+ * Returns: (transfer none): the address at index @i
  **/
 NMIPAddress *
 nm_setting_ip_config_get_address (NMSettingIPConfig *setting, int i)
@@ -1567,7 +1567,7 @@ nm_setting_ip_config_get_num_routes (NMSettingIPConfig *setting)
  * @setting: the #NMSettingIPConfig
  * @i: index number of the route to return
  *
- * Returns: the route at index @i
+ * Returns: (transfer none): the route at index @i
  **/
 NMIPRoute *
 nm_setting_ip_config_get_route (NMSettingIPConfig *setting, int i)
diff --git a/libnm-core/nm-setting-ip6-config.c b/libnm-core/nm-setting-ip6-config.c
index 7e3ae4d4..619e002c 100644
--- a/libnm-core/nm-setting-ip6-config.c
+++ b/libnm-core/nm-setting-ip6-config.c
@@ -130,7 +130,6 @@ verify (NMSetting *setting, NMConnection *connection, GError **error)
 			g_set_error (error,
 			             NM_CONNECTION_ERROR,
 			             NM_CONNECTION_ERROR_INVALID_PROPERTY,
-			             _("'%s' not allowed for %s=%s"),
 			             _("this property is not allowed for '%s=%s'"),
 			             NM_SETTING_IP_CONFIG_METHOD, method);
 			g_prefix_error (error, "%s.%s: ", NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP_CONFIG_DNS);
diff --git a/libnm-core/nm-setting-olpc-mesh.c b/libnm-core/nm-setting-olpc-mesh.c
index c1d54bee..a3a5d881 100644
--- a/libnm-core/nm-setting-olpc-mesh.c
+++ b/libnm-core/nm-setting-olpc-mesh.c
@@ -26,7 +26,6 @@
 #include <glib/gi18n-lib.h>
 
 #include "nm-setting-olpc-mesh.h"
-#include "nm-dbus-interface.h"
 #include "nm-utils.h"
 #include "nm-utils-private.h"
 #include "nm-setting-private.h"
diff --git a/libnm-core/nm-setting-vlan.c b/libnm-core/nm-setting-vlan.c
index d904ad52..0547141c 100644
--- a/libnm-core/nm-setting-vlan.c
+++ b/libnm-core/nm-setting-vlan.c
@@ -565,7 +565,7 @@ priority_strv_to_maplist (NMVlanPriorityMap map, char **strv)
 	GSList *list = NULL;
 	int i;
 
-	for (i = 0; strv[i]; i++) {
+	for (i = 0; strv && strv[i]; i++) {
 		PriorityMap *item;
 
 		item = priority_map_new_from_str (map, strv[i]);
@@ -749,7 +749,7 @@ nm_setting_vlan_class_init (NMSettingVlanClass *setting_class)
 		(object_class, PROP_FLAGS,
 		 g_param_spec_flags (NM_SETTING_VLAN_FLAGS, "", "",
 		                     NM_TYPE_VLAN_FLAGS,
-		                     0,
+		                     NM_VLAN_FLAG_REORDER_HEADERS,
 		                     G_PARAM_READWRITE |
 		                     G_PARAM_CONSTRUCT |
 		                     NM_SETTING_PARAM_INFERRABLE |
@@ -763,7 +763,7 @@ nm_setting_vlan_class_init (NMSettingVlanClass *setting_class)
 	 * "from" and "to" are unsigned integers, ie "7:3".
 	 **/
 	/* ---ifcfg-rh---
-	 * property: ingress-property-map
+	 * property: ingress-priority-map
 	 * variable: VLAN_INGRESS_PRIORITY_MAP
 	 * description: Ingress priority mapping.
 	 * example: VLAN_INGRESS_PRIORITY_MAP=4:2,3:5
@@ -785,7 +785,7 @@ nm_setting_vlan_class_init (NMSettingVlanClass *setting_class)
 	 * both "from" and "to" are unsigned integers, ie "7:3".
 	 **/
 	/* ---ifcfg-rh---
-	 * property: egress-property-map
+	 * property: egress-priority-map
 	 * variable: VLAN_EGRESS_PRIORITY_MAP
 	 * description: Egress priority mapping.
 	 * example: VLAN_EGRESS_PRIORITY_MAP=5:4,4:1,3:7
diff --git a/libnm-core/nm-setting-wired.c b/libnm-core/nm-setting-wired.c
index 3d0c5b64..c38b1874 100644
--- a/libnm-core/nm-setting-wired.c
+++ b/libnm-core/nm-setting-wired.c
@@ -696,12 +696,12 @@ verify (NMSetting *setting, NMConnection *connection, GError **error)
 		return FALSE;
 	}
 
-	if (   NM_FLAGS_HAS (priv->wol, NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT)
-	    && NM_FLAGS_ANY (priv->wol, NM_SETTING_WIRED_WAKE_ON_LAN_ALL)) {
+	if (   NM_FLAGS_ANY (priv->wol, NM_SETTING_WIRED_WAKE_ON_LAN_EXCLUSIVE_FLAGS)
+	    && !nm_utils_is_power_of_two (priv->wol)) {
 		g_set_error_literal (error,
 		                     NM_CONNECTION_ERROR,
 		                     NM_CONNECTION_ERROR_INVALID_PROPERTY,
-		                     _("Wake-on-LAN mode 'default' is incompatible with other flags"));
+		                     _("Wake-on-LAN mode 'default' and 'ignore' are exclusive flags"));
 		g_prefix_error (error, "%s.%s: ", NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_WAKE_ON_LAN);
 		return FALSE;
 	}
@@ -1190,7 +1190,10 @@ nm_setting_wired_class_init (NMSettingWiredClass *setting_class)
 	 * May be any combination of %NM_SETTING_WIRED_WAKE_ON_LAN_PHY,
 	 * %NM_SETTING_WIRED_WAKE_ON_LAN_UNICAST, %NM_SETTING_WIRED_WAKE_ON_LAN_MULTICAST,
 	 * %NM_SETTING_WIRED_WAKE_ON_LAN_BROADCAST, %NM_SETTING_WIRED_WAKE_ON_LAN_ARP,
-	 * %NM_SETTING_WIRED_WAKE_ON_LAN_MAGIC.
+	 * %NM_SETTING_WIRED_WAKE_ON_LAN_MAGIC or the special values
+	 * %NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT (to use global settings) and
+	 * %NM_SETTING_WIRED_WAKE_ON_LAN_IGNORE (to disable management of Wake-on-LAN in
+	 * NetworkManager).
 	 *
 	 * Since: 1.0.6
 	 **/
diff --git a/libnm-core/nm-setting-wired.h b/libnm-core/nm-setting-wired.h
index 44b7c4d0..e1fd6f67 100644
--- a/libnm-core/nm-setting-wired.h
+++ b/libnm-core/nm-setting-wired.h
@@ -43,14 +43,19 @@ G_BEGIN_DECLS
 /**
  * NMSettingWiredWakeOnLan:
  * @NM_SETTING_WIRED_WAKE_ON_LAN_NONE: Wake-on-LAN disabled
- * @NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT: Use the default value
  * @NM_SETTING_WIRED_WAKE_ON_LAN_PHY: Wake on PHY activity
  * @NM_SETTING_WIRED_WAKE_ON_LAN_UNICAST: Wake on unicast messages
  * @NM_SETTING_WIRED_WAKE_ON_LAN_MULTICAST: Wake on multicast messages
  * @NM_SETTING_WIRED_WAKE_ON_LAN_BROADCAST: Wake on broadcast messages
  * @NM_SETTING_WIRED_WAKE_ON_LAN_ARP: Wake on ARP
  * @NM_SETTING_WIRED_WAKE_ON_LAN_MAGIC: Wake on magic packet
- * @NM_SETTING_WIRED_WAKE_ON_LAN_ALL: Wake on all events
+ * @NM_SETTING_WIRED_WAKE_ON_LAN_ALL: Wake on all events. This does not
+ *   include the exclusive flags @NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT or
+ *   @NM_SETTING_WIRED_WAKE_ON_LAN_IGNORE.
+ * @NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT: Use the default value
+ * @NM_SETTING_WIRED_WAKE_ON_LAN_IGNORE: Don't change configured settings
+ * @NM_SETTING_WIRED_WAKE_ON_LAN_EXCLUSIVE_FLAGS: Mask of flags that are
+ *   incompatible with other flags
  *
  * Options for #NMSettingWired:wake-on-lan. Note that not all options
  * are supported by all devices.
@@ -59,15 +64,19 @@ G_BEGIN_DECLS
  */
 typedef enum { /*< flags >*/
 	NM_SETTING_WIRED_WAKE_ON_LAN_NONE      = 0, /*< skip >*/
-	NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT   = (1 << 0),
 	NM_SETTING_WIRED_WAKE_ON_LAN_PHY       = (1 << 1),
 	NM_SETTING_WIRED_WAKE_ON_LAN_UNICAST   = (1 << 2),
 	NM_SETTING_WIRED_WAKE_ON_LAN_MULTICAST = (1 << 3),
 	NM_SETTING_WIRED_WAKE_ON_LAN_BROADCAST = (1 << 4),
 	NM_SETTING_WIRED_WAKE_ON_LAN_ARP       = (1 << 5),
 	NM_SETTING_WIRED_WAKE_ON_LAN_MAGIC     = (1 << 6),
-	_NM_SETTING_WIRED_WAKE_ON_LAN_LAST,    /*< skip >*/
-	NM_SETTING_WIRED_WAKE_ON_LAN_ALL       = (((_NM_SETTING_WIRED_WAKE_ON_LAN_LAST - 1) << 1) - 1 - NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT) /*< skip >*/
+
+	_NM_SETTING_WIRED_WAKE_ON_LAN_LAST_OPT, /*< skip >*/
+	NM_SETTING_WIRED_WAKE_ON_LAN_ALL       = (((_NM_SETTING_WIRED_WAKE_ON_LAN_LAST_OPT - 1) << 1) - 1) - (1 << 0 /*DEFAULT*/), /*< skip >*/
+
+	NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT   = (1 << 0),
+	NM_SETTING_WIRED_WAKE_ON_LAN_IGNORE    = (1 << 15),
+	NM_SETTING_WIRED_WAKE_ON_LAN_EXCLUSIVE_FLAGS = NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT | NM_SETTING_WIRED_WAKE_ON_LAN_IGNORE, /*< skip >*/
 } NMSettingWiredWakeOnLan;
 
 #define NM_SETTING_WIRED_PORT "port"
diff --git a/libnm-core/nm-setting-wireless.c b/libnm-core/nm-setting-wireless.c
index ce3cf9a7..34c97fe8 100644
--- a/libnm-core/nm-setting-wireless.c
+++ b/libnm-core/nm-setting-wireless.c
@@ -27,7 +27,6 @@
 #include <glib/gi18n-lib.h>
 
 #include "nm-setting-wireless.h"
-#include "nm-dbus-interface.h"
 #include "nm-utils.h"
 #include "nm-utils-private.h"
 #include "nm-setting-private.h"
diff --git a/libnm-core/nm-setting-wireless.h b/libnm-core/nm-setting-wireless.h
index 98fa98dc..ef27ded2 100644
--- a/libnm-core/nm-setting-wireless.h
+++ b/libnm-core/nm-setting-wireless.h
@@ -29,7 +29,6 @@
 
 #include <nm-setting.h>
 #include <nm-setting-wireless-security.h>
-#include <nm-dbus-interface.h>
 
 G_BEGIN_DECLS
 
diff --git a/libnm-core/nm-utils.c b/libnm-core/nm-utils.c
index 66dd1c87..987cf731 100644
--- a/libnm-core/nm-utils.c
+++ b/libnm-core/nm-utils.c
@@ -3676,7 +3676,7 @@ char *nm_utils_enum_to_str (GType type, int value)
 				break;
 
 			if (!first)
-				g_string_append_c (str, ',');
+				g_string_append (str, ", ");
 			g_string_append (str, flags_value->value_nick);
 
 			value &= ~flags_value->value;
@@ -3733,7 +3733,7 @@ gboolean nm_utils_enum_from_str (GType type, const char *str,
 		gs_strfreev char **strv = NULL;
 		int i;
 
-		strv = g_strsplit (stripped, ",", 0);
+		strv = g_strsplit_set (stripped, " \t,", 0);
 		for (i = 0; strv[i]; i++) {
 			if (!strv[i][0])
 				continue;
diff --git a/libnm-core/nm-utils.h b/libnm-core/nm-utils.h
index d1f4bcf4..e97b823e 100644
--- a/libnm-core/nm-utils.h
+++ b/libnm-core/nm-utils.h
@@ -33,7 +33,6 @@
 #include <linux/if_ether.h>
 #include <linux/if_infiniband.h>
 
-#include "nm-dbus-interface.h"
 #include "nm-core-enum-types.h"
 #include "nm-setting-wireless-security.h"
 
diff --git a/libnm-core/nm-version.h b/libnm-core/nm-version.h
index e26feca6..5f3a8c94 100644
--- a/libnm-core/nm-version.h
+++ b/libnm-core/nm-version.h
@@ -15,7 +15,7 @@
  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  * Boston, MA 02110-1301 USA.
  *
- * Copyright 2011 Red Hat, Inc.
+ * Copyright 2011, 2015 Red Hat, Inc.
  */
 
 #ifndef NM_VERSION_H
@@ -23,60 +23,10 @@
 
 #include <glib.h>
 
-/**
- * NM_MAJOR_VERSION:
- *
- * Evaluates to the major version number of NetworkManager which this source
- * is compiled against.
- */
-#define NM_MAJOR_VERSION (1)
-
-/**
- * NM_MINOR_VERSION:
- *
- * Evaluates to the minor version number of NetworkManager which this source
- * is compiled against.
- */
-#define NM_MINOR_VERSION (0)
-
-/**
- * NM_MICRO_VERSION:
- *
- * Evaluates to the micro version number of NetworkManager which this source
- * compiled against.
- */
-#define NM_MICRO_VERSION (6)
-
-/**
- * NM_CHECK_VERSION:
- * @major: major version (e.g. 1 for version 1.2.5)
- * @minor: minor version (e.g. 2 for version 1.2.5)
- * @micro: micro version (e.g. 5 for version 1.2.5)
- *
- * Returns: %TRUE if the version of the NetworkManager header files
- * is the same as or newer than the passed-in version.
- */
-#define NM_CHECK_VERSION(major,minor,micro)                         \
-    (NM_MAJOR_VERSION > (major) ||                                  \
-     (NM_MAJOR_VERSION == (major) && NM_MINOR_VERSION > (minor)) || \
-     (NM_MAJOR_VERSION == (major) && NM_MINOR_VERSION == (minor) && NM_MICRO_VERSION >= (micro)))
-
+#include <nm-version-macros.h>
 
 /* Deprecation / Availability macros */
 
-#define NM_ENCODE_VERSION(major,minor,micro) ((major) << 16 | (minor) << 8 | (micro))
-
-#define NM_VERSION_0_9_8  (NM_ENCODE_VERSION (0, 9, 8))
-#define NM_VERSION_0_9_10 (NM_ENCODE_VERSION (0, 9, 10))
-#define NM_VERSION_1_0    (NM_ENCODE_VERSION (1, 0, 0))
-#define NM_VERSION_1_0_2  (NM_ENCODE_VERSION (1, 0, 2))
-#define NM_VERSION_1_0_4  (NM_ENCODE_VERSION (1, 0, 4))
-#define NM_VERSION_1_0_6  (NM_ENCODE_VERSION (1, 0, 6))
-#define NM_VERSION_1_0_8  (NM_ENCODE_VERSION (1, 0, 8))
-
-#define NM_VERSION_CUR_STABLE  NM_VERSION_1_0_6
-#define NM_VERSION_NEXT_STABLE NM_VERSION_1_0_8
-
 #if !defined (NM_VERSION_MIN_REQUIRED) || (NM_VERSION_MIN_REQUIRED == 0)
 # undef NM_VERSION_MIN_REQUIRED
 # define NM_VERSION_MIN_REQUIRED (NM_VERSION_CUR_STABLE)
@@ -138,4 +88,10 @@
 # define NM_AVAILABLE_IN_1_0_6
 #endif
 
+#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_0_8
+# define NM_AVAILABLE_IN_1_0_8          G_UNAVAILABLE(1,0.8)
+#else
+# define NM_AVAILABLE_IN_1_0_8
+#endif
+
 #endif  /* NM_VERSION_H */
diff --git a/libnm-core/nm-version.h.in b/libnm-core/nm-version.h.in
deleted file mode 100644
index e00f4055..00000000
--- a/libnm-core/nm-version.h.in
+++ /dev/null
@@ -1,141 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
-/*
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301 USA.
- *
- * Copyright 2011 Red Hat, Inc.
- */
-
-#ifndef NM_VERSION_H
-#define NM_VERSION_H
-
-#include <glib.h>
-
-/**
- * NM_MAJOR_VERSION:
- *
- * Evaluates to the major version number of NetworkManager which this source
- * is compiled against.
- */
-#define NM_MAJOR_VERSION (@NM_MAJOR_VERSION@)
-
-/**
- * NM_MINOR_VERSION:
- *
- * Evaluates to the minor version number of NetworkManager which this source
- * is compiled against.
- */
-#define NM_MINOR_VERSION (@NM_MINOR_VERSION@)
-
-/**
- * NM_MICRO_VERSION:
- *
- * Evaluates to the micro version number of NetworkManager which this source
- * compiled against.
- */
-#define NM_MICRO_VERSION (@NM_MICRO_VERSION@)
-
-/**
- * NM_CHECK_VERSION:
- * @major: major version (e.g. 1 for version 1.2.5)
- * @minor: minor version (e.g. 2 for version 1.2.5)
- * @micro: micro version (e.g. 5 for version 1.2.5)
- *
- * Returns: %TRUE if the version of the NetworkManager header files
- * is the same as or newer than the passed-in version.
- */
-#define NM_CHECK_VERSION(major,minor,micro)                         \
-    (NM_MAJOR_VERSION > (major) ||                                  \
-     (NM_MAJOR_VERSION == (major) && NM_MINOR_VERSION > (minor)) || \
-     (NM_MAJOR_VERSION == (major) && NM_MINOR_VERSION == (minor) && NM_MICRO_VERSION >= (micro)))
-
-
-/* Deprecation / Availability macros */
-
-#define NM_ENCODE_VERSION(major,minor,micro) ((major) << 16 | (minor) << 8 | (micro))
-
-#define NM_VERSION_0_9_8  (NM_ENCODE_VERSION (0, 9, 8))
-#define NM_VERSION_0_9_10 (NM_ENCODE_VERSION (0, 9, 10))
-#define NM_VERSION_1_0    (NM_ENCODE_VERSION (1, 0, 0))
-#define NM_VERSION_1_0_2  (NM_ENCODE_VERSION (1, 0, 2))
-#define NM_VERSION_1_0_4  (NM_ENCODE_VERSION (1, 0, 4))
-#define NM_VERSION_1_0_6  (NM_ENCODE_VERSION (1, 0, 6))
-#define NM_VERSION_1_0_8  (NM_ENCODE_VERSION (1, 0, 8))
-
-#define NM_VERSION_CUR_STABLE  NM_VERSION_1_0_6
-#define NM_VERSION_NEXT_STABLE NM_VERSION_1_0_8
-
-#if !defined (NM_VERSION_MIN_REQUIRED) || (NM_VERSION_MIN_REQUIRED == 0)
-# undef NM_VERSION_MIN_REQUIRED
-# define NM_VERSION_MIN_REQUIRED (NM_VERSION_CUR_STABLE)
-#endif
-
-#if !defined (NM_VERSION_MAX_ALLOWED) || (NM_VERSION_MAX_ALLOWED == 0)
-# undef NM_VERSION_MAX_ALLOWED
-# define NM_VERSION_MAX_ALLOWED (NM_VERSION_CUR_STABLE)
-#endif
-
-/* sanity checks */
-#if NM_VERSION_MIN_REQUIRED > NM_VERSION_NEXT_STABLE
-#error "NM_VERSION_MIN_REQUIRED must be <= NM_VERSION_NEXT_STABLE"
-#endif
-#if NM_VERSION_MAX_ALLOWED < NM_VERSION_MIN_REQUIRED
-#error "NM_VERSION_MAX_ALLOWED must be >= NM_VERSION_MIN_REQUIRED"
-#endif
-#if NM_VERSION_MIN_REQUIRED < NM_VERSION_0_9_8
-#error "NM_VERSION_MIN_REQUIRED must be >= NM_VERSION_0_9_8"
-#endif
-
-#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_0_9_10
-# define NM_DEPRECATED_IN_0_9_10        G_DEPRECATED
-# define NM_DEPRECATED_IN_0_9_10_FOR(f) G_DEPRECATED_FOR(f)
-#else
-# define NM_DEPRECATED_IN_0_9_10
-# define NM_DEPRECATED_IN_0_9_10_FOR(f)
-#endif
-
-#if NM_VERSION_MAX_ALLOWED < NM_VERSION_0_9_10
-# define NM_AVAILABLE_IN_0_9_10         G_UNAVAILABLE(0.9,10)
-#else
-# define NM_AVAILABLE_IN_0_9_10
-#endif
-
-#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_0
-# define NM_DEPRECATED_IN_1_0           G_DEPRECATED
-# define NM_DEPRECATED_IN_1_0_FOR(f)    G_DEPRECATED_FOR(f)
-#else
-# define NM_DEPRECATED_IN_1_0
-# define NM_DEPRECATED_IN_1_0_FOR(f)
-#endif
-
-#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_0
-# define NM_AVAILABLE_IN_1_0            G_UNAVAILABLE(1,0)
-#else
-# define NM_AVAILABLE_IN_1_0
-#endif
-
-#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_0_4
-# define NM_AVAILABLE_IN_1_0_4          G_UNAVAILABLE(1,0.4)
-#else
-# define NM_AVAILABLE_IN_1_0_4
-#endif
-
-#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_0_6
-# define NM_AVAILABLE_IN_1_0_6          G_UNAVAILABLE(1,0.6)
-#else
-# define NM_AVAILABLE_IN_1_0_6
-#endif
-
-#endif  /* NM_VERSION_H */
diff --git a/libnm-core/tests/Makefile.am b/libnm-core/tests/Makefile.am
index dd38b3d6..bcccfda9 100644
--- a/libnm-core/tests/Makefile.am
+++ b/libnm-core/tests/Makefile.am
@@ -13,6 +13,7 @@ certsdir = $(srcdir)/certs
 
 AM_CPPFLAGS = \
 	-I${top_srcdir}/include \
+	-I${top_builddir}/include \
 	-I$(top_srcdir)/libnm-core \
 	-I$(top_builddir)/libnm-core \
 	-DNETWORKMANAGER_COMPILATION \
diff --git a/libnm-core/tests/Makefile.in b/libnm-core/tests/Makefile.in
index a37acbe2..e46146a4 100644
--- a/libnm-core/tests/Makefile.in
+++ b/libnm-core/tests/Makefile.in
@@ -567,6 +567,7 @@ LOG_DRIVER = @LOG_DRIVER@
 LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -715,6 +716,7 @@ with_valgrind = @with_valgrind@
 @ENABLE_TESTS_TRUE@certsdir = $(srcdir)/certs
 @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-core \
 @ENABLE_TESTS_TRUE@	-I$(top_builddir)/libnm-core \
 @ENABLE_TESTS_TRUE@	-DNETWORKMANAGER_COMPILATION \
diff --git a/libnm-core/tests/test-general.c b/libnm-core/tests/test-general.c
index e9483652..53d8195c 100644
--- a/libnm-core/tests/test-general.c
+++ b/libnm-core/tests/test-general.c
@@ -4284,7 +4284,7 @@ again:
 			 * by randomly setting bits. */
 			numbits = g_rand_int_range (rand, 1, 65);
 			while (xno != ~((guint64) 0) && numbits > 0) {
-				guint64 v = (1LL << g_rand_int_range (rand, 0, 65));
+				guint64 v = (1LL << g_rand_int_range (rand, 0, 64));
 
 				if ((xno | v) != xno) {
 					xno |= v;
@@ -4582,12 +4582,12 @@ static void test_nm_utils_enum (void)
 	test_nm_utils_enum_to_str_do (meta_flags, NM_TEST_GENERAL_META_FLAGS_BAZ, "baz");
 	test_nm_utils_enum_to_str_do (meta_flags, NM_TEST_GENERAL_META_FLAGS_FOO |
 	                                          NM_TEST_GENERAL_META_FLAGS_BAR |
-	                                          NM_TEST_GENERAL_META_FLAGS_BAZ, "foo,bar,baz");
+	                                          NM_TEST_GENERAL_META_FLAGS_BAZ, "foo, bar, baz");
 
 	test_nm_utils_enum_to_str_do (color_flags, NM_TEST_GENERAL_COLOR_FLAGS_RED, "red");
 	test_nm_utils_enum_to_str_do (color_flags, NM_TEST_GENERAL_COLOR_FLAGS_WHITE, "");
 	test_nm_utils_enum_to_str_do (color_flags, NM_TEST_GENERAL_COLOR_FLAGS_RED |
-	                                           NM_TEST_GENERAL_COLOR_FLAGS_GREEN, "red,green");
+	                                           NM_TEST_GENERAL_COLOR_FLAGS_GREEN, "red, green");
 
 	test_nm_utils_enum_from_str_do (bool_enum, "", FALSE, 0, NULL);
 	test_nm_utils_enum_from_str_do (bool_enum, " ", FALSE, 0, NULL);
@@ -4601,6 +4601,8 @@ static void test_nm_utils_enum (void)
 	test_nm_utils_enum_from_str_do (meta_flags, "foo", TRUE, NM_TEST_GENERAL_META_FLAGS_FOO, NULL);
 	test_nm_utils_enum_from_str_do (meta_flags, "foo,baz", TRUE, NM_TEST_GENERAL_META_FLAGS_FOO |
 	                                                             NM_TEST_GENERAL_META_FLAGS_BAZ, NULL);
+	test_nm_utils_enum_from_str_do (meta_flags, "foo, baz", TRUE, NM_TEST_GENERAL_META_FLAGS_FOO |
+	                                                              NM_TEST_GENERAL_META_FLAGS_BAZ, NULL);
 	test_nm_utils_enum_from_str_do (meta_flags, "foo,,bar", TRUE, NM_TEST_GENERAL_META_FLAGS_FOO |
 	                                                              NM_TEST_GENERAL_META_FLAGS_BAR, NULL);
 	test_nm_utils_enum_from_str_do (meta_flags, "foo,baz,quux,bar", FALSE, 0, "quux");
@@ -4637,18 +4639,18 @@ int main (int argc, char **argv)
 	g_test_add_func ("/core/general/test_setting_to_dbus_enum", test_setting_to_dbus_enum);
 	g_test_add_func ("/core/general/test_setting_compare_id", test_setting_compare_id);
 	g_test_add_func ("/core/general/test_setting_compare_timestamp", test_setting_compare_timestamp);
-#define ADD_FUNC(func, secret_flags, comp_flags, remove_secret) \
-	g_test_add_data_func_full ("/core/general/" G_STRINGIFY (func), \
+#define ADD_FUNC(name, func, secret_flags, comp_flags, remove_secret) \
+	g_test_add_data_func_full ("/core/general/" G_STRINGIFY (func) "_" name, \
 	                           test_data_compare_secrets_new (secret_flags, comp_flags, remove_secret), \
 	                           func, g_free)
-	ADD_FUNC (test_setting_compare_secrets, NM_SETTING_SECRET_FLAG_AGENT_OWNED, NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS, TRUE);
-	ADD_FUNC (test_setting_compare_secrets, NM_SETTING_SECRET_FLAG_NOT_SAVED, NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS, TRUE);
-	ADD_FUNC (test_setting_compare_secrets, NM_SETTING_SECRET_FLAG_NONE, NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS, TRUE);
-	ADD_FUNC (test_setting_compare_secrets, NM_SETTING_SECRET_FLAG_NONE, NM_SETTING_COMPARE_FLAG_EXACT, FALSE);
-	ADD_FUNC (test_setting_compare_vpn_secrets, NM_SETTING_SECRET_FLAG_AGENT_OWNED, NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS, TRUE);
-	ADD_FUNC (test_setting_compare_vpn_secrets, NM_SETTING_SECRET_FLAG_NOT_SAVED, NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS, TRUE);
-	ADD_FUNC (test_setting_compare_vpn_secrets, NM_SETTING_SECRET_FLAG_NONE, NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS, TRUE);
-	ADD_FUNC (test_setting_compare_vpn_secrets, NM_SETTING_SECRET_FLAG_NONE, NM_SETTING_COMPARE_FLAG_EXACT, FALSE);
+	ADD_FUNC ("agent_owned", test_setting_compare_secrets, NM_SETTING_SECRET_FLAG_AGENT_OWNED, NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS, TRUE);
+	ADD_FUNC ("not_saved", test_setting_compare_secrets, NM_SETTING_SECRET_FLAG_NOT_SAVED, NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS, TRUE);
+	ADD_FUNC ("secrets", test_setting_compare_secrets, NM_SETTING_SECRET_FLAG_NONE, NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS, TRUE);
+	ADD_FUNC ("exact", test_setting_compare_secrets, NM_SETTING_SECRET_FLAG_NONE, NM_SETTING_COMPARE_FLAG_EXACT, FALSE);
+	ADD_FUNC ("agent_owned", test_setting_compare_vpn_secrets, NM_SETTING_SECRET_FLAG_AGENT_OWNED, NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS, TRUE);
+	ADD_FUNC ("not_saved", test_setting_compare_vpn_secrets, NM_SETTING_SECRET_FLAG_NOT_SAVED, NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS, TRUE);
+	ADD_FUNC ("secrets", test_setting_compare_vpn_secrets, NM_SETTING_SECRET_FLAG_NONE, NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS, TRUE);
+	ADD_FUNC ("exact", test_setting_compare_vpn_secrets, NM_SETTING_SECRET_FLAG_NONE, NM_SETTING_COMPARE_FLAG_EXACT, FALSE);
 	g_test_add_func ("/core/general/test_setting_old_uuid", test_setting_old_uuid);
 
 	g_test_add_func ("/core/general/test_connection_to_dbus_setting_name", test_connection_to_dbus_setting_name);