summary refs log tree commit diff
path: root/clients/cli/settings.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2017-05-11 14:55:55 +0200
committerMichael Biebl <biebl@debian.org>2017-05-11 14:55:55 +0200
commitc333f062ddcba9b35330647bf6cbd0a07f2d786e (patch)
tree257c3a0c74c09f4ad2328eab5b932806405f0c1c /clients/cli/settings.c
parenta222e56e103f949b148a6942e385ccca2c26d9f3 (diff)
New upstream version 1.8.0 upstream/1.8.0
Diffstat (limited to 'clients/cli/settings.c')
-rw-r--r--clients/cli/settings.c1099
1 files changed, 710 insertions, 389 deletions
diff --git a/clients/cli/settings.c b/clients/cli/settings.c
index 1c8d5462..87b1f50f 100644
--- a/clients/cli/settings.c
+++ b/clients/cli/settings.c
@@ -128,35 +128,45 @@ NmcOutputField nmc_fields_setting_8021X[] = {
 	SETTING_FIELD (NM_SETTING_802_1X_ANONYMOUS_IDENTITY),                 /* 3 */
 	SETTING_FIELD (NM_SETTING_802_1X_PAC_FILE),                           /* 4 */
 	SETTING_FIELD (NM_SETTING_802_1X_CA_CERT),                            /* 5 */
-	SETTING_FIELD (NM_SETTING_802_1X_CA_PATH),                            /* 6 */
-	SETTING_FIELD (NM_SETTING_802_1X_SUBJECT_MATCH),                      /* 7 */
-	SETTING_FIELD (NM_SETTING_802_1X_ALTSUBJECT_MATCHES),                 /* 8 */
-	SETTING_FIELD (NM_SETTING_802_1X_DOMAIN_SUFFIX_MATCH),                /* 9 */
-	SETTING_FIELD (NM_SETTING_802_1X_CLIENT_CERT),                        /* 10 */
-	SETTING_FIELD (NM_SETTING_802_1X_PHASE1_PEAPVER),                     /* 11 */
-	SETTING_FIELD (NM_SETTING_802_1X_PHASE1_PEAPLABEL),                   /* 12 */
-	SETTING_FIELD (NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING),           /* 13 */
-	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_AUTH),                        /* 14 */
-	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_AUTHEAP),                     /* 15 */
-	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_CA_CERT),                     /* 16 */
-	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_CA_PATH),                     /* 17 */
-	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH),               /* 18 */
-	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES),          /* 19 */
-	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_DOMAIN_SUFFIX_MATCH),         /* 20 */
-	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_CLIENT_CERT),                 /* 21 */
-	SETTING_FIELD (NM_SETTING_802_1X_PASSWORD),                           /* 22 */
-	SETTING_FIELD (NM_SETTING_802_1X_PASSWORD_FLAGS),                     /* 23 */
-	SETTING_FIELD (NM_SETTING_802_1X_PASSWORD_RAW),                       /* 24 */
-	SETTING_FIELD (NM_SETTING_802_1X_PASSWORD_RAW_FLAGS),                 /* 25 */
-	SETTING_FIELD (NM_SETTING_802_1X_PRIVATE_KEY),                        /* 26 */
-	SETTING_FIELD (NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD),               /* 27 */
-	SETTING_FIELD (NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS),         /* 28 */
-	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_PRIVATE_KEY),                 /* 29 */
-	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD),        /* 30 */
-	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS),  /* 31 */
-	SETTING_FIELD (NM_SETTING_802_1X_PIN),                                /* 32 */
-	SETTING_FIELD (NM_SETTING_802_1X_PIN_FLAGS),                          /* 33 */
-	SETTING_FIELD (NM_SETTING_802_1X_SYSTEM_CA_CERTS),                    /* 34 */
+	SETTING_FIELD (NM_SETTING_802_1X_CA_CERT_PASSWORD),                   /* 6 */
+	SETTING_FIELD (NM_SETTING_802_1X_CA_CERT_PASSWORD_FLAGS),             /* 7 */
+	SETTING_FIELD (NM_SETTING_802_1X_CA_PATH),                            /* 8 */
+	SETTING_FIELD (NM_SETTING_802_1X_SUBJECT_MATCH),                      /* 9 */
+	SETTING_FIELD (NM_SETTING_802_1X_ALTSUBJECT_MATCHES),                 /* 10 */
+	SETTING_FIELD (NM_SETTING_802_1X_DOMAIN_SUFFIX_MATCH),                /* 11 */
+	SETTING_FIELD (NM_SETTING_802_1X_CLIENT_CERT),                        /* 12 */
+	SETTING_FIELD (NM_SETTING_802_1X_CLIENT_CERT_PASSWORD),               /* 13 */
+	SETTING_FIELD (NM_SETTING_802_1X_CLIENT_CERT_PASSWORD_FLAGS),         /* 14 */
+	SETTING_FIELD (NM_SETTING_802_1X_PHASE1_PEAPVER),                     /* 15 */
+	SETTING_FIELD (NM_SETTING_802_1X_PHASE1_PEAPLABEL),                   /* 16 */
+	SETTING_FIELD (NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING),           /* 17 */
+	SETTING_FIELD (NM_SETTING_802_1X_PHASE1_AUTH_FLAGS),                  /* 18 */
+	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_AUTH),                        /* 19 */
+	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_AUTHEAP),                     /* 20 */
+	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD),            /* 21 */
+	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD_FLAGS),      /* 22 */
+	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_CA_CERT),                     /* 23 */
+	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_CA_PATH),                     /* 24 */
+	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH),               /* 25 */
+	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES),          /* 26 */
+	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_DOMAIN_SUFFIX_MATCH),         /* 27 */
+	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_CLIENT_CERT),                 /* 28 */
+	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD),        /* 29 */
+	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD_FLAGS),  /* 30 */
+	SETTING_FIELD (NM_SETTING_802_1X_PASSWORD),                           /* 31 */
+	SETTING_FIELD (NM_SETTING_802_1X_PASSWORD_FLAGS),                     /* 32 */
+	SETTING_FIELD (NM_SETTING_802_1X_PASSWORD_RAW),                       /* 33 */
+	SETTING_FIELD (NM_SETTING_802_1X_PASSWORD_RAW_FLAGS),                 /* 34 */
+	SETTING_FIELD (NM_SETTING_802_1X_PRIVATE_KEY),                        /* 35 */
+	SETTING_FIELD (NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD),               /* 36 */
+	SETTING_FIELD (NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS),         /* 37 */
+	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_PRIVATE_KEY),                 /* 38 */
+	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD),        /* 39 */
+	SETTING_FIELD (NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS),  /* 40 */
+	SETTING_FIELD (NM_SETTING_802_1X_PIN),                                /* 41 */
+	SETTING_FIELD (NM_SETTING_802_1X_PIN_FLAGS),                          /* 42 */
+	SETTING_FIELD (NM_SETTING_802_1X_SYSTEM_CA_CERTS),                    /* 43 */
+	SETTING_FIELD (NM_SETTING_802_1X_AUTH_TIMEOUT),                       /* 44 */
 	{NULL, NULL, 0, NULL, FALSE, FALSE, 0}
 };
 #define NMC_FIELDS_SETTING_802_1X_ALL     "name"","\
@@ -165,22 +175,31 @@ NmcOutputField nmc_fields_setting_8021X[] = {
                                           NM_SETTING_802_1X_ANONYMOUS_IDENTITY","\
                                           NM_SETTING_802_1X_PAC_FILE","\
                                           NM_SETTING_802_1X_CA_CERT","\
+                                          NM_SETTING_802_1X_CA_CERT_PASSWORD","\
+                                          NM_SETTING_802_1X_CA_CERT_PASSWORD_FLAGS","\
                                           NM_SETTING_802_1X_CA_PATH","\
                                           NM_SETTING_802_1X_SUBJECT_MATCH","\
                                           NM_SETTING_802_1X_ALTSUBJECT_MATCHES","\
                                           NM_SETTING_802_1X_DOMAIN_SUFFIX_MATCH","\
                                           NM_SETTING_802_1X_CLIENT_CERT","\
+                                          NM_SETTING_802_1X_CLIENT_CERT_PASSWORD","\
+                                          NM_SETTING_802_1X_CLIENT_CERT_PASSWORD_FLAGS","\
                                           NM_SETTING_802_1X_PHASE1_PEAPVER","\
                                           NM_SETTING_802_1X_PHASE1_PEAPLABEL","\
                                           NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING","\
+                                          NM_SETTING_802_1X_PHASE1_AUTH_FLAGS","\
                                           NM_SETTING_802_1X_PHASE2_AUTH","\
                                           NM_SETTING_802_1X_PHASE2_AUTHEAP","\
                                           NM_SETTING_802_1X_PHASE2_CA_CERT","\
+                                          NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD","\
+                                          NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD_FLAGS","\
                                           NM_SETTING_802_1X_PHASE2_CA_PATH","\
                                           NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH","\
                                           NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES","\
                                           NM_SETTING_802_1X_PHASE2_DOMAIN_SUFFIX_MATCH","\
                                           NM_SETTING_802_1X_PHASE2_CLIENT_CERT","\
+                                          NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD","\
+                                          NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD_FLAGS","\
                                           NM_SETTING_802_1X_PASSWORD","\
                                           NM_SETTING_802_1X_PASSWORD_FLAGS","\
                                           NM_SETTING_802_1X_PASSWORD_RAW","\
@@ -193,7 +212,8 @@ NmcOutputField nmc_fields_setting_8021X[] = {
                                           NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS","\
                                           NM_SETTING_802_1X_PIN","\
                                           NM_SETTING_802_1X_PIN_FLAGS","\
-                                          NM_SETTING_802_1X_SYSTEM_CA_CERTS
+                                          NM_SETTING_802_1X_SYSTEM_CA_CERTS","\
+                                          NM_SETTING_802_1X_AUTH_TIMEOUT
 
 /* Available fields for NM_SETTING_WIRELESS_SETTING_NAME */
 NmcOutputField nmc_fields_setting_wireless[] = {
@@ -474,6 +494,7 @@ NmcOutputField nmc_fields_setting_gsm[] = {
 	SETTING_FIELD (NM_SETTING_GSM_DEVICE_ID),       /* 10 */
 	SETTING_FIELD (NM_SETTING_GSM_SIM_ID),          /* 11 */
 	SETTING_FIELD (NM_SETTING_GSM_SIM_OPERATOR_ID), /* 12 */
+	SETTING_FIELD (NM_SETTING_GSM_MTU),             /* 13 */
 	{NULL, NULL, 0, NULL, FALSE, FALSE, 0}
 };
 #define NMC_FIELDS_SETTING_GSM_ALL     "name"","\
@@ -488,7 +509,8 @@ NmcOutputField nmc_fields_setting_gsm[] = {
                                        NM_SETTING_GSM_HOME_ONLY","\
                                        NM_SETTING_GSM_DEVICE_ID","\
                                        NM_SETTING_GSM_SIM_ID","\
-                                       NM_SETTING_GSM_SIM_OPERATOR_ID
+                                       NM_SETTING_GSM_SIM_OPERATOR_ID","\
+                                       NM_SETTING_GSM_MTU
 
 /* Available fields for NM_SETTING_CDMA_SETTING_NAME */
 NmcOutputField nmc_fields_setting_cdma[] = {
@@ -497,13 +519,15 @@ NmcOutputField nmc_fields_setting_cdma[] = {
 	SETTING_FIELD (NM_SETTING_CDMA_USERNAME),        /* 2 */
 	SETTING_FIELD (NM_SETTING_CDMA_PASSWORD),        /* 3 */
 	SETTING_FIELD (NM_SETTING_CDMA_PASSWORD_FLAGS),  /* 4 */
+	SETTING_FIELD (NM_SETTING_CDMA_MTU),             /* 5 */
 	{NULL, NULL, 0, NULL, FALSE, FALSE, 0}
 };
 #define NMC_FIELDS_SETTING_CDMA_ALL     "name"","\
                                         NM_SETTING_CDMA_NUMBER","\
                                         NM_SETTING_CDMA_USERNAME","\
                                         NM_SETTING_CDMA_PASSWORD","\
-                                        NM_SETTING_CDMA_PASSWORD_FLAGS
+                                        NM_SETTING_CDMA_PASSWORD_FLAGS","\
+                                        NM_SETTING_CDMA_MTU
 
 /* Available fields for NM_SETTING_BLUETOOTH_SETTING_NAME */
 NmcOutputField nmc_fields_setting_bluetooth[] = {
@@ -693,6 +717,13 @@ NmcOutputField nmc_fields_setting_dcb[] = {
                                        NM_SETTING_DCB_PRIORITY_STRICT_BANDWIDTH","\
                                        NM_SETTING_DCB_PRIORITY_TRAFFIC_CLASS
 
+/* Available fields for NM_SETTING_DUMMY_SETTING_NAME */
+NmcOutputField nmc_fields_setting_dummy[] = {
+	SETTING_FIELD ("name"),                                /* 0 */
+	{NULL, NULL, 0, NULL, FALSE, FALSE, 0}
+};
+#define NMC_FIELDS_SETTING_DUMMY_ALL       "name"
+
 /* Available fields for NM_SETTING_TUN_SETTING_NAME */
 NmcOutputField nmc_fields_setting_tun[] = {
 	SETTING_FIELD ("name"),                                /* 0 */
@@ -869,10 +900,13 @@ bytes_to_string (GBytes *bytes)
 }
 
 static char *
-vlan_flags_to_string (guint32 flags)
+vlan_flags_to_string (guint32 flags, NmcPropertyGetType get_type)
 {
 	GString *flag_str;
 
+	if (get_type == NMC_PROPERTY_GET_PARSABLE)
+		return g_strdup_printf ("%u", flags);
+
 	if (flags == 0)
 		return g_strdup (_("0 (NONE)"));
 
@@ -1660,19 +1694,27 @@ DEFINE_GETTER (nmc_property_802_1X_get_eap, NM_SETTING_802_1X_EAP)
 DEFINE_GETTER (nmc_property_802_1X_get_identity, NM_SETTING_802_1X_IDENTITY)
 DEFINE_GETTER (nmc_property_802_1X_get_anonymous_identity, NM_SETTING_802_1X_ANONYMOUS_IDENTITY)
 DEFINE_GETTER (nmc_property_802_1X_get_pac_file, NM_SETTING_802_1X_PAC_FILE)
+DEFINE_GETTER (nmc_property_802_1X_get_ca_cert_password, NM_SETTING_802_1X_CA_CERT_PASSWORD)
+DEFINE_SECRET_FLAGS_GETTER (nmc_property_802_1X_get_ca_cert_password_flags, NM_SETTING_802_1X_CA_CERT_PASSWORD_FLAGS)
 DEFINE_GETTER (nmc_property_802_1X_get_ca_path, NM_SETTING_802_1X_CA_PATH)
 DEFINE_GETTER (nmc_property_802_1X_get_subject_match, NM_SETTING_802_1X_SUBJECT_MATCH)
 DEFINE_GETTER (nmc_property_802_1X_get_altsubject_matches, NM_SETTING_802_1X_ALTSUBJECT_MATCHES)
 DEFINE_GETTER (nmc_property_802_1X_get_domain_suffix_match, NM_SETTING_802_1X_DOMAIN_SUFFIX_MATCH)
+DEFINE_GETTER (nmc_property_802_1X_get_client_cert_password, NM_SETTING_802_1X_CLIENT_CERT_PASSWORD)
+DEFINE_SECRET_FLAGS_GETTER (nmc_property_802_1X_get_client_cert_password_flags, NM_SETTING_802_1X_CLIENT_CERT_PASSWORD_FLAGS)
 DEFINE_GETTER (nmc_property_802_1X_get_phase1_peapver, NM_SETTING_802_1X_PHASE1_PEAPVER)
 DEFINE_GETTER (nmc_property_802_1X_get_phase1_peaplabel, NM_SETTING_802_1X_PHASE1_PEAPLABEL)
 DEFINE_GETTER (nmc_property_802_1X_get_phase1_fast_provisioning, NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING)
 DEFINE_GETTER (nmc_property_802_1X_get_phase2_auth, NM_SETTING_802_1X_PHASE2_AUTH)
 DEFINE_GETTER (nmc_property_802_1X_get_phase2_autheap, NM_SETTING_802_1X_PHASE2_AUTHEAP)
+DEFINE_GETTER (nmc_property_802_1X_get_phase2_ca_cert_password, NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD)
+DEFINE_SECRET_FLAGS_GETTER (nmc_property_802_1X_get_phase2_ca_cert_password_flags, NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD_FLAGS)
 DEFINE_GETTER (nmc_property_802_1X_get_phase2_ca_path, NM_SETTING_802_1X_PHASE2_CA_PATH)
 DEFINE_GETTER (nmc_property_802_1X_get_phase2_subject_match, NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH)
 DEFINE_GETTER (nmc_property_802_1X_get_phase2_altsubject_matches, NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES)
 DEFINE_GETTER (nmc_property_802_1X_get_phase2_domain_suffix_match, NM_SETTING_802_1X_PHASE2_DOMAIN_SUFFIX_MATCH)
+DEFINE_GETTER (nmc_property_802_1X_get_phase2_client_cert_password, NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD)
+DEFINE_SECRET_FLAGS_GETTER (nmc_property_802_1X_get_phase2_client_cert_password_flags, NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD_FLAGS)
 DEFINE_GETTER (nmc_property_802_1X_get_password, NM_SETTING_802_1X_PASSWORD)
 DEFINE_SECRET_FLAGS_GETTER (nmc_property_802_1X_get_password_flags, NM_SETTING_802_1X_PASSWORD_FLAGS)
 DEFINE_SECRET_FLAGS_GETTER (nmc_property_802_1X_get_password_raw_flags, NM_SETTING_802_1X_PASSWORD_RAW_FLAGS)
@@ -1683,6 +1725,7 @@ DEFINE_SECRET_FLAGS_GETTER (nmc_property_802_1X_get_phase2_private_key_password_
 DEFINE_GETTER (nmc_property_802_1X_get_pin, NM_SETTING_802_1X_PIN)
 DEFINE_SECRET_FLAGS_GETTER (nmc_property_802_1X_get_pin_flags, NM_SETTING_802_1X_PIN_FLAGS)
 DEFINE_GETTER (nmc_property_802_1X_get_system_ca_certs, NM_SETTING_802_1X_SYSTEM_CA_CERTS)
+DEFINE_GETTER (nmc_property_802_1X_get_auth_timeout, NM_SETTING_802_1X_AUTH_TIMEOUT)
 
 static char *
 nmc_property_802_1X_get_ca_cert (NMSetting *setting, NmcPropertyGetType get_type)
@@ -2158,6 +2201,58 @@ nmc_property_802_1X_describe_password_raw (NMSetting *setting, const char *prop)
 	         "          ab 4 55 0xa6 ea 3a 74 C2\n");
 }
 
+static char *
+nmc_property_802_1X_get_phase1_auth_flags (NMSetting *setting, NmcPropertyGetType get_type)
+{
+	NMSetting8021x *s_8021x = NM_SETTING_802_1X (setting);
+	NMSetting8021xAuthFlags flags;
+	char *tmp, *str;
+
+	flags = nm_setting_802_1x_get_phase1_auth_flags (s_8021x);
+	tmp = nm_utils_enum_to_str (nm_setting_802_1x_auth_flags_get_type (), flags);
+	if (get_type == NMC_PROPERTY_GET_PARSABLE)
+		str = g_strdup_printf ("%s", tmp && *tmp ? tmp : "none");
+	else
+		str = g_strdup_printf ("%d (%s)", flags, tmp && *tmp ? tmp : "none");
+	g_free (tmp);
+	return str;
+}
+
+static gboolean
+nmc_property_802_1X_set_phase1_auth_flags (NMSetting *setting, const char *prop,
+                                           const char *val, GError **error)
+{
+	NMSetting8021xAuthFlags flags;
+	gs_free char *err_token = NULL;
+	gboolean ret;
+	long int t;
+
+	if (nmc_string_to_int_base (val, 0, TRUE,
+	                            NM_SETTING_802_1X_AUTH_FLAGS_NONE,
+	                            NM_SETTING_802_1X_AUTH_FLAGS_ALL,
+	                            &t))
+		flags = (NMSetting8021xAuthFlags) t;
+	else {
+		ret = nm_utils_enum_from_str (nm_setting_802_1x_auth_flags_get_type (), val,
+		                              (int *) &flags, &err_token);
+
+		if (!ret) {
+			if (g_ascii_strcasecmp (err_token, "none") == 0)
+				flags = NM_SETTING_802_1X_AUTH_FLAGS_NONE;
+			else {
+				g_set_error (error, 1, 0, _("invalid option '%s', use a combination of [%s]"),
+				             err_token,
+				             nm_utils_enum_to_str (nm_setting_802_1x_auth_flags_get_type (),
+				                                   NM_SETTING_802_1X_AUTH_FLAGS_ALL));
+				return FALSE;
+			}
+		}
+	}
+
+	g_object_set (setting, prop, (guint) flags, NULL);
+	return TRUE;
+}
+
 
 /* --- NM_SETTING_ADSL_SETTING_NAME property functions --- */
 DEFINE_GETTER (nmc_property_adsl_get_username, NM_SETTING_ADSL_USERNAME)
@@ -2358,6 +2453,7 @@ DEFINE_GETTER (nmc_property_bridge_port_get_hairpin_mode, NM_SETTING_BRIDGE_PORT
 DEFINE_GETTER (nmc_property_cdma_get_number, NM_SETTING_CDMA_NUMBER)
 DEFINE_GETTER (nmc_property_cdma_get_username, NM_SETTING_CDMA_USERNAME)
 DEFINE_GETTER (nmc_property_cdma_get_password, NM_SETTING_CDMA_PASSWORD)
+DEFINE_GETTER (nmc_property_cdma_get_mtu, NM_SETTING_CDMA_MTU)
 
 DEFINE_SECRET_FLAGS_GETTER (nmc_property_cdma_get_password_flags, NM_SETTING_CDMA_PASSWORD_FLAGS)
 
@@ -2407,10 +2503,13 @@ nmc_property_connection_get_permissions (NMSetting *setting, NmcPropertyGetType
 		if (nm_setting_connection_get_permission (s_con, i, &perm_type, &perm_item, NULL))
 			g_string_append_printf (perm, "%s:%s,", perm_type, perm_item);
 	}
-	if (perm->len > 0)
+	if (perm->len > 0) {
 		g_string_truncate (perm, perm->len-1); /* remove trailing , */
+		return g_string_free (perm, FALSE);
+	}
 
-	return g_string_free (perm, FALSE);
+	/* No value from get_permission */
+	return g_string_free (perm, TRUE);
 }
 
 DEFINE_GETTER (nmc_property_connection_get_zone, NM_SETTING_CONNECTION_ZONE)
@@ -3194,6 +3293,7 @@ DEFINE_GETTER (nmc_property_gsm_get_home_only, NM_SETTING_GSM_HOME_ONLY)
 DEFINE_GETTER (nmc_property_gsm_get_device_id, NM_SETTING_GSM_DEVICE_ID)
 DEFINE_GETTER (nmc_property_gsm_get_sim_id, NM_SETTING_GSM_SIM_ID)
 DEFINE_GETTER (nmc_property_gsm_get_sim_operator_id, NM_SETTING_GSM_SIM_OPERATOR_ID)
+DEFINE_GETTER (nmc_property_gsm_get_mtu, NM_SETTING_GSM_MTU)
 
 static gboolean
 nmc_property_gsm_set_sim_operator_id (NMSetting *setting, const char *prop, const char *val, GError **error)
@@ -3376,29 +3476,6 @@ _parse_ip_address (int family, const char *address, GError **error)
 	return ipaddr;
 }
 
-static NMIPRoute *
-_parse_ip_route (int family, const char *route, GError **error)
-{
-	char *value = g_strdup (route);
-	char **routev;
-	guint len;
-	NMIPRoute *iproute = NULL;
-
-	routev = nmc_strsplit_set (g_strstrip (value), " \t", 0);
-	len = g_strv_length (routev);
-	if (len < 1 || len > 3) {
-		g_set_error (error, 1, 0, _("'%s' is not valid (the format is: ip[/prefix] [next-hop] [metric])"),
-		             route);
-		goto finish;
-	}
-	iproute = nmc_parse_and_build_route (family, routev[0], routev[1], len >= 2 ? routev[2] : NULL, error);
-
-finish:
-	g_free (value);
-	g_strfreev (routev);
-	return iproute;
-}
-
 DEFINE_GETTER (nmc_property_ipv4_get_method, NM_SETTING_IP_CONFIG_METHOD)
 DEFINE_GETTER (nmc_property_ipv4_get_dns, NM_SETTING_IP_CONFIG_DNS)
 DEFINE_GETTER (nmc_property_ipv4_get_dns_search, NM_SETTING_IP_CONFIG_DNS_SEARCH)
@@ -3442,8 +3519,21 @@ nmc_property_ipvx_get_routes (NMSetting *setting, NmcPropertyGetType get_type)
 
 	num_routes = nm_setting_ip_config_get_num_routes (s_ip);
 	for (i = 0; i < num_routes; i++) {
+		gs_free char *attr_str = NULL;
+		gs_strfreev char **attr_names = NULL;
+		gs_unref_hashtable GHashTable *hash = g_hash_table_new (g_str_hash, g_str_equal);
+		int j;
+
 		route = nm_setting_ip_config_get_route (s_ip, i);
 
+		attr_names = nm_ip_route_get_attribute_names (route);
+		for (j = 0; attr_names && attr_names[j]; j++) {
+			g_hash_table_insert (hash, attr_names[j],
+			                     nm_ip_route_get_attribute (route, attr_names[j]));
+		}
+
+		attr_str = nm_utils_format_variant_attributes (hash, ' ', '=');
+
 		if (get_type == NMC_PROPERTY_GET_PARSABLE) {
 			if (printable->len > 0)
 				g_string_append (printable, ", ");
@@ -3456,7 +3546,10 @@ nmc_property_ipvx_get_routes (NMSetting *setting, NmcPropertyGetType get_type)
 				g_string_append_printf (printable, " %s", nm_ip_route_get_next_hop (route));
 			if (nm_ip_route_get_metric (route) != -1)
 				g_string_append_printf (printable, " %u", (guint32) nm_ip_route_get_metric (route));
+			if (attr_str)
+				g_string_append_printf (printable, " %s", attr_str);
 		} else {
+
 			if (printable->len > 0)
 				g_string_append (printable, "; ");
 
@@ -3473,6 +3566,8 @@ nmc_property_ipvx_get_routes (NMSetting *setting, NmcPropertyGetType get_type)
 
 			if (nm_ip_route_get_metric (route) != -1)
 				g_string_append_printf (printable, ", mt = %u", (guint32) nm_ip_route_get_metric (route));
+			if (attr_str)
+				g_string_append_printf (printable, " %s", attr_str);
 
 			g_string_append (printable, " }");
 		}
@@ -3533,7 +3628,7 @@ static gboolean
 nmc_property_ipv4_set_method (NMSetting *setting, const char *prop, const char *val, GError **error)
 {
 	/* Silently accept "static" and convert to "manual" */
-	if (val && strlen (val) > 1 && matches (val, "static") == 0)
+	if (val && strlen (val) > 1 && matches (val, "static"))
 		val = NM_SETTING_IP4_CONFIG_METHOD_MANUAL;
 
 	return check_and_set_string (setting, prop, val, ipv4_valid_methods, error);
@@ -3764,7 +3859,7 @@ nmc_property_ipv4_set_gateway (NMSetting *setting, const char *prop, const char
 static NMIPRoute *
 _parse_ipv4_route (const char *route, GError **error)
 {
-	return _parse_ip_route (AF_INET, route, error);
+	return nmc_parse_and_build_route (AF_INET, route, error);
 }
 
 static gboolean
@@ -3871,7 +3966,7 @@ static gboolean
 nmc_property_ipv6_set_method (NMSetting *setting, const char *prop, const char *val, GError **error)
 {
 	/* Silently accept "static" and convert to "manual" */
-	if (val && strlen (val) > 1 && matches (val, "static") == 0)
+	if (val && strlen (val) > 1 && matches (val, "static"))
 		val = NM_SETTING_IP6_CONFIG_METHOD_MANUAL;
 
 	return check_and_set_string (setting, prop, val, ipv6_valid_methods, error);
@@ -4107,7 +4202,7 @@ nmc_property_ipv6_set_gateway (NMSetting *setting, const char *prop, const char
 static NMIPRoute *
 _parse_ipv6_route (const char *route, GError **error)
 {
-	return _parse_ip_route (AF_INET6, route, error);
+	return nmc_parse_and_build_route (AF_INET6, route, error);
 }
 
 static gboolean
@@ -4635,7 +4730,7 @@ static char *
 nmc_property_vlan_get_flags (NMSetting *setting, NmcPropertyGetType get_type)
 {
 	NMSettingVlan *s_vlan = NM_SETTING_VLAN (setting);
-	return vlan_flags_to_string (nm_setting_vlan_get_flags (s_vlan));
+	return vlan_flags_to_string (nm_setting_vlan_get_flags (s_vlan), get_type);
 }
 
 static char *
@@ -5726,7 +5821,7 @@ get_answer (const char *prop, const char *value)
 	else
 		question = g_strdup_printf (_("Do you also want to clear '%s'? [yes]: "), prop);
 	tmp_str = nmc_get_user_input (question);
-	if (!tmp_str || matches (tmp_str, "yes") == 0)
+	if (!tmp_str || matches (tmp_str, "yes"))
 		answer = TRUE;
 	g_free (tmp_str);
 	g_free (question);
@@ -5922,7 +6017,7 @@ connection_master_changed_cb (GObject *object, GParamSpec *pspec, gpointer user_
 			g_print (_("Warning: setting %s.%s requires removing ipv4 and ipv6 settings\n"),
 			         nm_setting_get_name (NM_SETTING (s_con)), g_param_spec_get_name (pspec));
 			tmp_str = nmc_get_user_input (_("Do you want to remove them? [yes] "));
-			if (!tmp_str || matches (tmp_str, "yes") == 0) {
+			if (!tmp_str || matches (tmp_str, "yes")) {
 				if (s_ipv4)
 					nm_connection_remove_setting (connection, G_OBJECT_TYPE (s_ipv4));
 				if (s_ipv6)
@@ -6129,6 +6224,20 @@ nmc_properties_init (void)
 	                    nmc_property_802_1X_describe_ca_cert,
 	                    NULL,
 	                    NULL);
+	nmc_add_prop_funcs (GLUE (802_1X, CA_CERT_PASSWORD),
+	                    nmc_property_802_1X_get_ca_cert_password,
+	                    nmc_property_set_string,
+	                    NULL,
+	                    NULL,
+	                    NULL,
+	                    NULL);
+	nmc_add_prop_funcs (GLUE (802_1X, CA_CERT_PASSWORD_FLAGS),
+	                    nmc_property_802_1X_get_ca_cert_password_flags,
+	                    nmc_property_set_secret_flags,
+	                    NULL,
+	                    NULL,
+	                    NULL,
+	                    NULL);
 	nmc_add_prop_funcs (GLUE (802_1X, CA_PATH),
 	                    nmc_property_802_1X_get_ca_path,
                             nmc_property_set_string,
@@ -6164,6 +6273,20 @@ nmc_properties_init (void)
 	                    nmc_property_802_1X_describe_client_cert,
 	                    NULL,
 	                    NULL);
+	nmc_add_prop_funcs (GLUE (802_1X, CLIENT_CERT_PASSWORD),
+	                    nmc_property_802_1X_get_client_cert_password,
+	                    nmc_property_set_string,
+	                    NULL,
+	                    NULL,
+	                    NULL,
+	                    NULL);
+	nmc_add_prop_funcs (GLUE (802_1X, CLIENT_CERT_PASSWORD_FLAGS),
+	                    nmc_property_802_1X_get_client_cert_password_flags,
+	                    nmc_property_set_secret_flags,
+	                    NULL,
+	                    NULL,
+	                    NULL,
+	                    NULL);
 	nmc_add_prop_funcs (GLUE (802_1X, PHASE1_PEAPVER),
 	                    nmc_property_802_1X_get_phase1_peapver,
 	                    nmc_property_802_1X_set_phase1_peapver,
@@ -6185,6 +6308,13 @@ nmc_properties_init (void)
 	                    NULL,
 	                    nmc_property_802_1X_allowed_phase1_fast_provisioning,
 	                    NULL);
+	nmc_add_prop_funcs (GLUE (802_1X, PHASE1_AUTH_FLAGS),
+	                    nmc_property_802_1X_get_phase1_auth_flags,
+	                    nmc_property_802_1X_set_phase1_auth_flags,
+	                    NULL,
+	                    NULL,
+	                    NULL,
+	                    NULL);
 	nmc_add_prop_funcs (GLUE (802_1X, PHASE2_AUTH),
 	                    nmc_property_802_1X_get_phase2_auth,
 	                    nmc_property_802_1X_set_phase2_auth,
@@ -6206,6 +6336,20 @@ nmc_properties_init (void)
 	                    nmc_property_802_1X_describe_phase2_ca_cert,
 	                    NULL,
 	                    NULL);
+	nmc_add_prop_funcs (GLUE (802_1X, PHASE2_CA_CERT_PASSWORD),
+	                    nmc_property_802_1X_get_phase2_ca_cert_password,
+	                    nmc_property_set_string,
+	                    NULL,
+	                    NULL,
+	                    NULL,
+	                    NULL);
+	nmc_add_prop_funcs (GLUE (802_1X, PHASE2_CA_CERT_PASSWORD_FLAGS),
+	                    nmc_property_802_1X_get_phase2_ca_cert_password_flags,
+	                    nmc_property_set_secret_flags,
+	                    NULL,
+	                    NULL,
+	                    NULL,
+	                    NULL);
 	nmc_add_prop_funcs (GLUE (802_1X, PHASE2_CA_PATH),
 	                    nmc_property_802_1X_get_phase2_ca_path,
 	                    nmc_property_set_string,
@@ -6241,6 +6385,20 @@ nmc_properties_init (void)
 	                    nmc_property_802_1X_describe_phase2_client_cert,
 	                    NULL,
 	                    NULL);
+	nmc_add_prop_funcs (GLUE (802_1X, PHASE2_CLIENT_CERT_PASSWORD),
+	                    nmc_property_802_1X_get_phase2_client_cert_password,
+	                    nmc_property_set_string,
+	                    NULL,
+	                    NULL,
+	                    NULL,
+	                    NULL);
+	nmc_add_prop_funcs (GLUE (802_1X, PHASE2_CLIENT_CERT_PASSWORD_FLAGS),
+	                    nmc_property_802_1X_get_phase2_client_cert_password_flags,
+	                    nmc_property_set_secret_flags,
+	                    NULL,
+	                    NULL,
+	                    NULL,
+	                    NULL);
 	nmc_add_prop_funcs (GLUE (802_1X, PASSWORD),
 	                    nmc_property_802_1X_get_password,
 	                    nmc_property_set_string,
@@ -6332,6 +6490,13 @@ nmc_properties_init (void)
 	                    NULL,
 	                    NULL,
 	                    NULL);
+	nmc_add_prop_funcs (GLUE (802_1X, AUTH_TIMEOUT),
+	                    nmc_property_802_1X_get_auth_timeout,
+	                    nmc_property_set_int,
+	                    NULL,
+	                    NULL,
+	                    NULL,
+	                    NULL);
 
 	/* Add editable properties for NM_SETTING_ADSL_SETTING_NAME */
 	nmc_add_prop_funcs (GLUE (ADSL, USERNAME),
@@ -6520,6 +6685,13 @@ nmc_properties_init (void)
 	                    NULL,
 	                    NULL,
 	                    NULL);
+	nmc_add_prop_funcs (GLUE (CDMA, MTU),
+	                    nmc_property_cdma_get_mtu,
+	                    nmc_property_set_uint,
+	                    NULL,
+	                    NULL,
+	                    NULL,
+	                    NULL);
 
 	/* Add editable properties for NM_SETTING_CONNECTION_SETTING_NAME */
 	nmc_add_prop_funcs (GLUE (CONNECTION, ID),
@@ -6848,6 +7020,13 @@ nmc_properties_init (void)
 	                    NULL,
 	                    NULL,
 	                    NULL);
+	nmc_add_prop_funcs (GLUE (GSM, MTU),
+	                    nmc_property_gsm_get_mtu,
+	                    nmc_property_set_uint,
+	                    NULL,
+	                    NULL,
+	                    NULL,
+	                    NULL);
 
 	/* Add editable properties for NM_SETTING_INFINIBAND_SETTING_NAME */
 	nmc_add_prop_funcs (GLUE (INFINIBAND, MAC_ADDRESS),
@@ -8471,11 +8650,14 @@ nmc_property_set_gvalue (NMSetting *setting, const char *prop, GValue *value)
 
 /*----------------------------------------------------------------------------*/
 
-#define GET_SECRET(show, setting, func) \
-	(show ? func (setting, NMC_PROPERTY_GET_PRETTY) : g_strdup (_("<hidden>")))
+#define GET_SECRET(show, setting, func, type) \
+	(show ? func (setting, type) : g_strdup (_("<hidden>")))
 
 static gboolean
-setting_connection_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_connection_details (NMSetting *setting, NmCli *nmc,
+                            const char *one_prop,
+                            gboolean secrets,
+                            NmcPropertyGetType type)
 {
 	NMSettingConnection *s_con = NM_SETTING_CONNECTION (setting);
 	NmcOutputField *tmpl, *arr;
@@ -8492,25 +8674,25 @@ setting_connection_details (NMSetting *setting, NmCli *nmc,  const char *one_pro
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_connection_get_id (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_connection_get_uuid (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, nmc_property_connection_get_stable_id (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 4, nmc_property_connection_get_interface_name (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 5, nmc_property_connection_get_type (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 6, nmc_property_connection_get_autoconnect (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 7, nmc_property_connection_get_autoconnect_priority (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 8, nmc_property_connection_get_autoconnect_retries (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 9, nmc_property_connection_get_timestamp (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 10, nmc_property_connection_get_read_only (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 11, nmc_property_connection_get_permissions (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 12, nmc_property_connection_get_zone (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 13, nmc_property_connection_get_master (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 14, nmc_property_connection_get_slave_type (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 15, nmc_property_connection_get_autoconnect_slaves (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 16, nmc_property_connection_get_secondaries (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 17, nmc_property_connection_get_gateway_ping_timeout (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 18, nmc_property_connection_get_metered (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 19, nmc_property_connection_get_lldp (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_connection_get_id (setting, type));
+	set_val_str (arr, 2, nmc_property_connection_get_uuid (setting, type));
+	set_val_str (arr, 3, nmc_property_connection_get_stable_id (setting, type));
+	set_val_str (arr, 4, nmc_property_connection_get_interface_name (setting, type));
+	set_val_str (arr, 5, nmc_property_connection_get_type (setting, type));
+	set_val_str (arr, 6, nmc_property_connection_get_autoconnect (setting, type));
+	set_val_str (arr, 7, nmc_property_connection_get_autoconnect_priority (setting, type));
+	set_val_str (arr, 8, nmc_property_connection_get_autoconnect_retries (setting, type));
+	set_val_str (arr, 9, nmc_property_connection_get_timestamp (setting, type));
+	set_val_str (arr, 10, nmc_property_connection_get_read_only (setting, type));
+	set_val_str (arr, 11, nmc_property_connection_get_permissions (setting, type));
+	set_val_str (arr, 12, nmc_property_connection_get_zone (setting, type));
+	set_val_str (arr, 13, nmc_property_connection_get_master (setting, type));
+	set_val_str (arr, 14, nmc_property_connection_get_slave_type (setting, type));
+	set_val_str (arr, 15, nmc_property_connection_get_autoconnect_slaves (setting, type));
+	set_val_str (arr, 16, nmc_property_connection_get_secondaries (setting, type));
+	set_val_str (arr, 17, nmc_property_connection_get_gateway_ping_timeout (setting, type));
+	set_val_str (arr, 18, nmc_property_connection_get_metered (setting, type));
+	set_val_str (arr, 19, nmc_property_connection_get_lldp (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -8519,7 +8701,11 @@ setting_connection_details (NMSetting *setting, NmCli *nmc,  const char *one_pro
 }
 
 static gboolean
-setting_wired_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_wired_details (NMSetting *setting,
+                       NmCli *nmc,
+                       const char *one_prop,
+                       gboolean secrets,
+                       NmcPropertyGetType type)
 {
 	NMSettingWired *s_wired = NM_SETTING_WIRED (setting);
 	NmcOutputField *tmpl, *arr;
@@ -8536,20 +8722,20 @@ setting_wired_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gb
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_wired_get_port (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_wired_get_speed (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, nmc_property_wired_get_duplex (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 4, nmc_property_wired_get_auto_negotiate (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 5, nmc_property_wired_get_mac_address (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 6, nmc_property_wired_get_cloned_mac_address (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 7, nmc_property_wired_get_generate_mac_address_mask (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 8, nmc_property_wired_get_mac_address_blacklist (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 9, nmc_property_wired_get_mtu (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 10, nmc_property_wired_get_s390_subchannels (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 11, nmc_property_wired_get_s390_nettype (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 12, nmc_property_wired_get_s390_options (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 13, nmc_property_wired_get_wake_on_lan (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 14, nmc_property_wired_get_wake_on_lan_password (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_wired_get_port (setting, type));
+	set_val_str (arr, 2, nmc_property_wired_get_speed (setting, type));
+	set_val_str (arr, 3, nmc_property_wired_get_duplex (setting, type));
+	set_val_str (arr, 4, nmc_property_wired_get_auto_negotiate (setting, type));
+	set_val_str (arr, 5, nmc_property_wired_get_mac_address (setting, type));
+	set_val_str (arr, 6, nmc_property_wired_get_cloned_mac_address (setting, type));
+	set_val_str (arr, 7, nmc_property_wired_get_generate_mac_address_mask (setting, type));
+	set_val_str (arr, 8, nmc_property_wired_get_mac_address_blacklist (setting, type));
+	set_val_str (arr, 9, nmc_property_wired_get_mtu (setting, type));
+	set_val_str (arr, 10, nmc_property_wired_get_s390_subchannels (setting, type));
+	set_val_str (arr, 11, nmc_property_wired_get_s390_nettype (setting, type));
+	set_val_str (arr, 12, nmc_property_wired_get_s390_options (setting, type));
+	set_val_str (arr, 13, nmc_property_wired_get_wake_on_lan (setting, type));
+	set_val_str (arr, 14, nmc_property_wired_get_wake_on_lan_password (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -8558,7 +8744,11 @@ setting_wired_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gb
 }
 
 static gboolean
-setting_802_1X_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_802_1X_details (NMSetting *setting,
+                        NmCli *nmc,
+                        const char *one_prop,
+                        gboolean secrets,
+                        NmcPropertyGetType type)
 {
 	NMSetting8021x *s_8021x = NM_SETTING_802_1X (setting);
 	NmcOutputField *tmpl, *arr;
@@ -8575,40 +8765,50 @@ setting_802_1X_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, g
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_802_1X_get_eap (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_802_1X_get_identity (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, nmc_property_802_1X_get_anonymous_identity (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 4, nmc_property_802_1X_get_pac_file (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 5, nmc_property_802_1X_get_ca_cert (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 6, nmc_property_802_1X_get_ca_path (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 7, nmc_property_802_1X_get_subject_match (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 8, nmc_property_802_1X_get_altsubject_matches (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 9, nmc_property_802_1X_get_domain_suffix_match (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 10, nmc_property_802_1X_get_client_cert (setting, NMC_PROPERTY_GET_PRETTY, secrets));
-	set_val_str (arr, 11, nmc_property_802_1X_get_phase1_peapver (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 12, nmc_property_802_1X_get_phase1_peaplabel (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 13, nmc_property_802_1X_get_phase1_fast_provisioning (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 14, nmc_property_802_1X_get_phase2_auth (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 15, nmc_property_802_1X_get_phase2_autheap (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 16, nmc_property_802_1X_get_phase2_ca_cert (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 17, nmc_property_802_1X_get_phase2_ca_path (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 18, nmc_property_802_1X_get_phase2_subject_match (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 19, nmc_property_802_1X_get_phase2_altsubject_matches (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 20, nmc_property_802_1X_get_phase2_domain_suffix_match (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 21, nmc_property_802_1X_get_phase2_client_cert (setting, NMC_PROPERTY_GET_PRETTY, secrets));
-	set_val_str (arr, 22, GET_SECRET (secrets, setting, nmc_property_802_1X_get_password));
-	set_val_str (arr, 23, nmc_property_802_1X_get_password_flags (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 24, GET_SECRET (secrets, setting, nmc_property_802_1X_get_password_raw));
-	set_val_str (arr, 25, nmc_property_802_1X_get_password_raw_flags (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 26, nmc_property_802_1X_get_private_key (setting, NMC_PROPERTY_GET_PRETTY, secrets));
-	set_val_str (arr, 27, GET_SECRET (secrets, setting, nmc_property_802_1X_get_private_key_password));
-	set_val_str (arr, 28, nmc_property_802_1X_get_private_key_password_flags (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 29, nmc_property_802_1X_get_phase2_private_key (setting, NMC_PROPERTY_GET_PRETTY, secrets));
-	set_val_str (arr, 30, GET_SECRET (secrets, setting, nmc_property_802_1X_get_phase2_private_key_password));
-	set_val_str (arr, 31, nmc_property_802_1X_get_phase2_private_key_password_flags (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 32, GET_SECRET (secrets, setting, nmc_property_802_1X_get_pin));
-	set_val_str (arr, 33, nmc_property_802_1X_get_pin_flags (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 34, nmc_property_802_1X_get_system_ca_certs (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_802_1X_get_eap (setting, type));
+	set_val_str (arr, 2, nmc_property_802_1X_get_identity (setting, type));
+	set_val_str (arr, 3, nmc_property_802_1X_get_anonymous_identity (setting, type));
+	set_val_str (arr, 4, nmc_property_802_1X_get_pac_file (setting, type));
+	set_val_str (arr, 5, nmc_property_802_1X_get_ca_cert (setting, type));
+	set_val_str (arr, 6, GET_SECRET (secrets, setting, nmc_property_802_1X_get_ca_cert_password, type));
+	set_val_str (arr, 7, nmc_property_802_1X_get_ca_cert_password_flags (setting, type));
+	set_val_str (arr, 8, nmc_property_802_1X_get_ca_path (setting, type));
+	set_val_str (arr, 9, nmc_property_802_1X_get_subject_match (setting, type));
+	set_val_str (arr, 10, nmc_property_802_1X_get_altsubject_matches (setting, type));
+	set_val_str (arr, 11, nmc_property_802_1X_get_domain_suffix_match (setting, type));
+	set_val_str (arr, 12, nmc_property_802_1X_get_client_cert (setting, type, secrets));
+	set_val_str (arr, 13, GET_SECRET (secrets, setting, nmc_property_802_1X_get_client_cert_password, type));
+	set_val_str (arr, 14, nmc_property_802_1X_get_client_cert_password_flags (setting, type));
+	set_val_str (arr, 15, nmc_property_802_1X_get_phase1_peapver (setting, type));
+	set_val_str (arr, 16, nmc_property_802_1X_get_phase1_peaplabel (setting, type));
+	set_val_str (arr, 17, nmc_property_802_1X_get_phase1_fast_provisioning (setting, type));
+	set_val_str (arr, 18, nmc_property_802_1X_get_phase1_auth_flags (setting, type));
+	set_val_str (arr, 19, nmc_property_802_1X_get_phase2_auth (setting, type));
+	set_val_str (arr, 20, nmc_property_802_1X_get_phase2_autheap (setting, type));
+	set_val_str (arr, 21, nmc_property_802_1X_get_phase2_ca_cert (setting, type));
+	set_val_str (arr, 22, GET_SECRET (secrets, setting, nmc_property_802_1X_get_phase2_ca_cert_password, type));
+	set_val_str (arr, 23, nmc_property_802_1X_get_phase2_ca_cert_password_flags (setting, type));
+	set_val_str (arr, 24, nmc_property_802_1X_get_phase2_ca_path (setting, type));
+	set_val_str (arr, 25, nmc_property_802_1X_get_phase2_subject_match (setting, type));
+	set_val_str (arr, 26, nmc_property_802_1X_get_phase2_altsubject_matches (setting, type));
+	set_val_str (arr, 27, nmc_property_802_1X_get_phase2_domain_suffix_match (setting, type));
+	set_val_str (arr, 28, nmc_property_802_1X_get_phase2_client_cert (setting, type, secrets));
+	set_val_str (arr, 29, GET_SECRET (secrets, setting, nmc_property_802_1X_get_phase2_client_cert_password, type));
+	set_val_str (arr, 30, nmc_property_802_1X_get_phase2_client_cert_password_flags (setting, type));
+	set_val_str (arr, 31, GET_SECRET (secrets, setting, nmc_property_802_1X_get_password, type));
+	set_val_str (arr, 32, nmc_property_802_1X_get_password_flags (setting, type));
+	set_val_str (arr, 33, GET_SECRET (secrets, setting, nmc_property_802_1X_get_password_raw, type));
+	set_val_str (arr, 34, nmc_property_802_1X_get_password_raw_flags (setting, type));
+	set_val_str (arr, 35, nmc_property_802_1X_get_private_key (setting, type, secrets));
+	set_val_str (arr, 36, GET_SECRET (secrets, setting, nmc_property_802_1X_get_private_key_password, type));
+	set_val_str (arr, 37, nmc_property_802_1X_get_private_key_password_flags (setting, type));
+	set_val_str (arr, 38, nmc_property_802_1X_get_phase2_private_key (setting, type, secrets));
+	set_val_str (arr, 39, GET_SECRET (secrets, setting, nmc_property_802_1X_get_phase2_private_key_password, type));
+	set_val_str (arr, 40, nmc_property_802_1X_get_phase2_private_key_password_flags (setting, type));
+	set_val_str (arr, 41, GET_SECRET (secrets, setting, nmc_property_802_1X_get_pin, type));
+	set_val_str (arr, 42, nmc_property_802_1X_get_pin_flags (setting, type));
+	set_val_str (arr, 43, nmc_property_802_1X_get_system_ca_certs (setting, type));
+	set_val_str (arr, 44, nmc_property_802_1X_get_auth_timeout (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -8617,7 +8817,11 @@ setting_802_1X_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, g
 }
 
 static gboolean
-setting_wireless_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_wireless_details (NMSetting *setting,
+                          NmCli *nmc,
+                          const char *one_prop,
+                          gboolean secrets,
+                          NmcPropertyGetType type)
 {
 	NMSettingWireless *s_wireless = NM_SETTING_WIRELESS (setting);
 	NmcOutputField *tmpl, *arr;
@@ -8634,22 +8838,22 @@ setting_wireless_details (NMSetting *setting, NmCli *nmc,  const char *one_prop,
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_wireless_get_ssid (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_wireless_get_mode (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, nmc_property_wireless_get_band (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 4, nmc_property_wireless_get_channel (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 5, nmc_property_wireless_get_bssid (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 6, nmc_property_wireless_get_rate (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 7, nmc_property_wireless_get_tx_power (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 8, nmc_property_wireless_get_mac_address (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 9, nmc_property_wireless_get_cloned_mac_address (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 10, nmc_property_wireless_get_generate_mac_address_mask (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 11, nmc_property_wireless_get_mac_address_blacklist (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 12, nmc_property_wireless_get_mac_address_randomization (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 13, nmc_property_wireless_get_mtu (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 14, nmc_property_wireless_get_seen_bssids (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 15, nmc_property_wireless_get_hidden (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 16, nmc_property_wireless_get_powersave (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_wireless_get_ssid (setting, type));
+	set_val_str (arr, 2, nmc_property_wireless_get_mode (setting, type));
+	set_val_str (arr, 3, nmc_property_wireless_get_band (setting, type));
+	set_val_str (arr, 4, nmc_property_wireless_get_channel (setting, type));
+	set_val_str (arr, 5, nmc_property_wireless_get_bssid (setting, type));
+	set_val_str (arr, 6, nmc_property_wireless_get_rate (setting, type));
+	set_val_str (arr, 7, nmc_property_wireless_get_tx_power (setting, type));
+	set_val_str (arr, 8, nmc_property_wireless_get_mac_address (setting, type));
+	set_val_str (arr, 9, nmc_property_wireless_get_cloned_mac_address (setting, type));
+	set_val_str (arr, 10, nmc_property_wireless_get_generate_mac_address_mask (setting, type));
+	set_val_str (arr, 11, nmc_property_wireless_get_mac_address_blacklist (setting, type));
+	set_val_str (arr, 12, nmc_property_wireless_get_mac_address_randomization (setting, type));
+	set_val_str (arr, 13, nmc_property_wireless_get_mtu (setting, type));
+	set_val_str (arr, 14, nmc_property_wireless_get_seen_bssids (setting, type));
+	set_val_str (arr, 15, nmc_property_wireless_get_hidden (setting, type));
+	set_val_str (arr, 16, nmc_property_wireless_get_powersave (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -8658,7 +8862,11 @@ setting_wireless_details (NMSetting *setting, NmCli *nmc,  const char *one_prop,
 }
 
 static gboolean
-setting_wireless_security_details (NMSetting *setting, NmCli *nmc, const char *one_prop, gboolean secrets)
+setting_wireless_security_details (NMSetting *setting,
+                                   NmCli *nmc,
+                                   const char *one_prop,
+                                   gboolean secrets,
+                                   NmcPropertyGetType type)
 {
 	NMSettingWirelessSecurity *s_wireless_sec = NM_SETTING_WIRELESS_SECURITY (setting);
 	NmcOutputField *tmpl, *arr;
@@ -8675,23 +8883,23 @@ setting_wireless_security_details (NMSetting *setting, NmCli *nmc, const char *o
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_wifi_sec_get_key_mgmt (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_wifi_sec_get_wep_tx_keyidx (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, nmc_property_wifi_sec_get_auth_alg (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 4, nmc_property_wifi_sec_get_proto (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 5, nmc_property_wifi_sec_get_pairwise (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 6, nmc_property_wifi_sec_get_group (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 7, nmc_property_wifi_sec_get_leap_username (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 8, GET_SECRET (secrets, setting, nmc_property_wifi_sec_get_wep_key0));
-	set_val_str (arr, 9, GET_SECRET (secrets, setting, nmc_property_wifi_sec_get_wep_key1));
-	set_val_str (arr, 10, GET_SECRET (secrets, setting, nmc_property_wifi_sec_get_wep_key2));
-	set_val_str (arr, 11, GET_SECRET (secrets, setting, nmc_property_wifi_sec_get_wep_key3));
-	set_val_str (arr, 12, nmc_property_wifi_sec_get_wep_key_flags (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 13, nmc_property_wifi_sec_get_wep_key_type (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 14, GET_SECRET (secrets, setting, nmc_property_wifi_sec_get_psk));
-	set_val_str (arr, 15, nmc_property_wifi_sec_get_psk_flags (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 16, GET_SECRET (secrets, setting, nmc_property_wifi_sec_get_leap_password));
-	set_val_str (arr, 17, nmc_property_wifi_sec_get_leap_password_flags (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_wifi_sec_get_key_mgmt (setting, type));
+	set_val_str (arr, 2, nmc_property_wifi_sec_get_wep_tx_keyidx (setting, type));
+	set_val_str (arr, 3, nmc_property_wifi_sec_get_auth_alg (setting, type));
+	set_val_str (arr, 4, nmc_property_wifi_sec_get_proto (setting, type));
+	set_val_str (arr, 5, nmc_property_wifi_sec_get_pairwise (setting, type));
+	set_val_str (arr, 6, nmc_property_wifi_sec_get_group (setting, type));
+	set_val_str (arr, 7, nmc_property_wifi_sec_get_leap_username (setting, type));
+	set_val_str (arr, 8, GET_SECRET (secrets, setting, nmc_property_wifi_sec_get_wep_key0, type));
+	set_val_str (arr, 9, GET_SECRET (secrets, setting, nmc_property_wifi_sec_get_wep_key1, type));
+	set_val_str (arr, 10, GET_SECRET (secrets, setting, nmc_property_wifi_sec_get_wep_key2, type));
+	set_val_str (arr, 11, GET_SECRET (secrets, setting, nmc_property_wifi_sec_get_wep_key3, type));
+	set_val_str (arr, 12, nmc_property_wifi_sec_get_wep_key_flags (setting, type));
+	set_val_str (arr, 13, nmc_property_wifi_sec_get_wep_key_type (setting, type));
+	set_val_str (arr, 14, GET_SECRET (secrets, setting, nmc_property_wifi_sec_get_psk, type));
+	set_val_str (arr, 15, nmc_property_wifi_sec_get_psk_flags (setting, type));
+	set_val_str (arr, 16, GET_SECRET (secrets, setting, nmc_property_wifi_sec_get_leap_password, type));
+	set_val_str (arr, 17, nmc_property_wifi_sec_get_leap_password_flags (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -8700,7 +8908,11 @@ setting_wireless_security_details (NMSetting *setting, NmCli *nmc, const char *o
 }
 
 static gboolean
-setting_ip4_config_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_ip4_config_details (NMSetting *setting,
+                            NmCli *nmc,
+                            const char *one_prop,
+                            gboolean secrets,
+                            NmcPropertyGetType type)
 {
 	NMSettingIPConfig *s_ip4 = NM_SETTING_IP_CONFIG (setting);
 	NmcOutputField *tmpl, *arr;
@@ -8717,25 +8929,25 @@ setting_ip4_config_details (NMSetting *setting, NmCli *nmc,  const char *one_pro
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_ipv4_get_method (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_ipv4_get_dns (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, nmc_property_ipv4_get_dns_search (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 4, nmc_property_ipv4_get_dns_options (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 5, nmc_property_ipv4_get_dns_priority (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 6, nmc_property_ip_get_addresses (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 7, nmc_property_ipv4_get_gateway (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 8, nmc_property_ipv4_get_routes (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 9, nmc_property_ipv4_get_route_metric (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 10, nmc_property_ipv4_get_ignore_auto_routes (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 11, nmc_property_ipv4_get_ignore_auto_dns (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 12, nmc_property_ipv4_get_dhcp_client_id (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 13, nmc_property_ipv4_get_dhcp_timeout (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 14, nmc_property_ipv4_get_dhcp_send_hostname (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 15, nmc_property_ipv4_get_dhcp_hostname (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 16, nmc_property_ipv4_get_dhcp_fqdn (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 17, nmc_property_ipv4_get_never_default (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 18, nmc_property_ipv4_get_may_fail (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 19, nmc_property_ipv4_get_dad_timeout (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_ipv4_get_method (setting, type));
+	set_val_str (arr, 2, nmc_property_ipv4_get_dns (setting, type));
+	set_val_str (arr, 3, nmc_property_ipv4_get_dns_search (setting, type));
+	set_val_str (arr, 4, nmc_property_ipv4_get_dns_options (setting, type));
+	set_val_str (arr, 5, nmc_property_ipv4_get_dns_priority (setting, type));
+	set_val_str (arr, 6, nmc_property_ip_get_addresses (setting, type));
+	set_val_str (arr, 7, nmc_property_ipv4_get_gateway (setting, type));
+	set_val_str (arr, 8, nmc_property_ipv4_get_routes (setting, type));
+	set_val_str (arr, 9, nmc_property_ipv4_get_route_metric (setting, type));
+	set_val_str (arr, 10, nmc_property_ipv4_get_ignore_auto_routes (setting, type));
+	set_val_str (arr, 11, nmc_property_ipv4_get_ignore_auto_dns (setting, type));
+	set_val_str (arr, 12, nmc_property_ipv4_get_dhcp_client_id (setting, type));
+	set_val_str (arr, 13, nmc_property_ipv4_get_dhcp_timeout (setting, type));
+	set_val_str (arr, 14, nmc_property_ipv4_get_dhcp_send_hostname (setting, type));
+	set_val_str (arr, 15, nmc_property_ipv4_get_dhcp_hostname (setting, type));
+	set_val_str (arr, 16, nmc_property_ipv4_get_dhcp_fqdn (setting, type));
+	set_val_str (arr, 17, nmc_property_ipv4_get_never_default (setting, type));
+	set_val_str (arr, 18, nmc_property_ipv4_get_may_fail (setting, type));
+	set_val_str (arr, 19, nmc_property_ipv4_get_dad_timeout (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -8744,7 +8956,11 @@ setting_ip4_config_details (NMSetting *setting, NmCli *nmc,  const char *one_pro
 }
 
 static gboolean
-setting_ip6_config_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_ip6_config_details (NMSetting *setting,
+                            NmCli *nmc,
+                            const char *one_prop,
+                            gboolean secrets,
+                            NmcPropertyGetType type)
 {
 	NMSettingIPConfig *s_ip6 = NM_SETTING_IP_CONFIG (setting);
 	NmcOutputField *tmpl, *arr;
@@ -8761,24 +8977,24 @@ setting_ip6_config_details (NMSetting *setting, NmCli *nmc,  const char *one_pro
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_ipv6_get_method (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_ipv6_get_dns (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, nmc_property_ipv6_get_dns_search (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 4, nmc_property_ipv6_get_dns_options (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 5, nmc_property_ipv6_get_dns_priority (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 6, nmc_property_ip_get_addresses (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 7, nmc_property_ipv6_get_gateway (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 8, nmc_property_ipv6_get_routes (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 9, nmc_property_ipv6_get_route_metric (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 10, nmc_property_ipv6_get_ignore_auto_routes (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 11, nmc_property_ipv6_get_ignore_auto_dns (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 12, nmc_property_ipv6_get_never_default (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 13, nmc_property_ipv6_get_may_fail (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 14, nmc_property_ipv6_get_ip6_privacy (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 15, nmc_property_ipv6_get_addr_gen_mode (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 16, nmc_property_ipv6_get_dhcp_send_hostname (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 17, nmc_property_ipv6_get_dhcp_hostname (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 18, nmc_property_ipv6_get_token (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_ipv6_get_method (setting, type));
+	set_val_str (arr, 2, nmc_property_ipv6_get_dns (setting, type));
+	set_val_str (arr, 3, nmc_property_ipv6_get_dns_search (setting, type));
+	set_val_str (arr, 4, nmc_property_ipv6_get_dns_options (setting, type));
+	set_val_str (arr, 5, nmc_property_ipv6_get_dns_priority (setting, type));
+	set_val_str (arr, 6, nmc_property_ip_get_addresses (setting, type));
+	set_val_str (arr, 7, nmc_property_ipv6_get_gateway (setting, type));
+	set_val_str (arr, 8, nmc_property_ipv6_get_routes (setting, type));
+	set_val_str (arr, 9, nmc_property_ipv6_get_route_metric (setting, type));
+	set_val_str (arr, 10, nmc_property_ipv6_get_ignore_auto_routes (setting, type));
+	set_val_str (arr, 11, nmc_property_ipv6_get_ignore_auto_dns (setting, type));
+	set_val_str (arr, 12, nmc_property_ipv6_get_never_default (setting, type));
+	set_val_str (arr, 13, nmc_property_ipv6_get_may_fail (setting, type));
+	set_val_str (arr, 14, nmc_property_ipv6_get_ip6_privacy (setting, type));
+	set_val_str (arr, 15, nmc_property_ipv6_get_addr_gen_mode (setting, type));
+	set_val_str (arr, 16, nmc_property_ipv6_get_dhcp_send_hostname (setting, type));
+	set_val_str (arr, 17, nmc_property_ipv6_get_dhcp_hostname (setting, type));
+	set_val_str (arr, 18, nmc_property_ipv6_get_token (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -8787,7 +9003,11 @@ setting_ip6_config_details (NMSetting *setting, NmCli *nmc,  const char *one_pro
 }
 
 static gboolean
-setting_serial_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_serial_details (NMSetting *setting,
+                        NmCli *nmc,
+                        const char *one_prop,
+                        gboolean secrets,
+                        NmcPropertyGetType type)
 {
 	NMSettingSerial *s_serial = NM_SETTING_SERIAL (setting);
 	NmcOutputField *tmpl, *arr;
@@ -8804,11 +9024,11 @@ setting_serial_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, g
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_serial_get_baud (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_serial_get_bits (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, nmc_property_serial_get_parity (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 4, nmc_property_serial_get_stopbits (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 5, nmc_property_serial_get_send_delay (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_serial_get_baud (setting, type));
+	set_val_str (arr, 2, nmc_property_serial_get_bits (setting, type));
+	set_val_str (arr, 3, nmc_property_serial_get_parity (setting, type));
+	set_val_str (arr, 4, nmc_property_serial_get_stopbits (setting, type));
+	set_val_str (arr, 5, nmc_property_serial_get_send_delay (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -8817,7 +9037,10 @@ setting_serial_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, g
 }
 
 static gboolean
-setting_ppp_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_ppp_details (NMSetting *setting, NmCli *nmc,
+                     const char *one_prop,
+                     gboolean secrets,
+                     NmcPropertyGetType type)
 {
 	NMSettingPpp *s_ppp = NM_SETTING_PPP (setting);
 	NmcOutputField *tmpl, *arr;
@@ -8834,24 +9057,24 @@ setting_ppp_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboo
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_ppp_get_noauth (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_ppp_get_refuse_eap (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, nmc_property_ppp_get_refuse_pap (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 4, nmc_property_ppp_get_refuse_chap (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 5, nmc_property_ppp_get_refuse_mschap (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 6, nmc_property_ppp_get_refuse_mschapv2 (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 7, nmc_property_ppp_get_nobsdcomp (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 8, nmc_property_ppp_get_nodeflate (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 9, nmc_property_ppp_get_no_vj_comp (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 10, nmc_property_ppp_get_require_mppe (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 11, nmc_property_ppp_get_require_mppe_128 (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 12, nmc_property_ppp_get_mppe_stateful (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 13, nmc_property_ppp_get_crtscts (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 14, nmc_property_ppp_get_baud (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 15, nmc_property_ppp_get_mru (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 16, nmc_property_ppp_get_mtu (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 17, nmc_property_ppp_get_lcp_echo_failure (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 18, nmc_property_ppp_get_lcp_echo_interval (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_ppp_get_noauth (setting, type));
+	set_val_str (arr, 2, nmc_property_ppp_get_refuse_eap (setting, type));
+	set_val_str (arr, 3, nmc_property_ppp_get_refuse_pap (setting, type));
+	set_val_str (arr, 4, nmc_property_ppp_get_refuse_chap (setting, type));
+	set_val_str (arr, 5, nmc_property_ppp_get_refuse_mschap (setting, type));
+	set_val_str (arr, 6, nmc_property_ppp_get_refuse_mschapv2 (setting, type));
+	set_val_str (arr, 7, nmc_property_ppp_get_nobsdcomp (setting, type));
+	set_val_str (arr, 8, nmc_property_ppp_get_nodeflate (setting, type));
+	set_val_str (arr, 9, nmc_property_ppp_get_no_vj_comp (setting, type));
+	set_val_str (arr, 10, nmc_property_ppp_get_require_mppe (setting, type));
+	set_val_str (arr, 11, nmc_property_ppp_get_require_mppe_128 (setting, type));
+	set_val_str (arr, 12, nmc_property_ppp_get_mppe_stateful (setting, type));
+	set_val_str (arr, 13, nmc_property_ppp_get_crtscts (setting, type));
+	set_val_str (arr, 14, nmc_property_ppp_get_baud (setting, type));
+	set_val_str (arr, 15, nmc_property_ppp_get_mru (setting, type));
+	set_val_str (arr, 16, nmc_property_ppp_get_mtu (setting, type));
+	set_val_str (arr, 17, nmc_property_ppp_get_lcp_echo_failure (setting, type));
+	set_val_str (arr, 18, nmc_property_ppp_get_lcp_echo_interval (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -8860,7 +9083,11 @@ setting_ppp_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboo
 }
 
 static gboolean
-setting_pppoe_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_pppoe_details (NMSetting *setting,
+                       NmCli *nmc,
+                       const char *one_prop,
+                       gboolean secrets,
+                       NmcPropertyGetType type)
 {
 	NMSettingPppoe *s_pppoe = NM_SETTING_PPPOE (setting);
 	NmcOutputField *tmpl, *arr;
@@ -8877,10 +9104,10 @@ setting_pppoe_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gb
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_pppoe_get_service (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_pppoe_get_username (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, GET_SECRET (secrets, setting, nmc_property_pppoe_get_password));
-	set_val_str (arr, 4, nmc_property_pppoe_get_password_flags (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_pppoe_get_service (setting, type));
+	set_val_str (arr, 2, nmc_property_pppoe_get_username (setting, type));
+	set_val_str (arr, 3, GET_SECRET (secrets, setting, nmc_property_pppoe_get_password, type));
+	set_val_str (arr, 4, nmc_property_pppoe_get_password_flags (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -8889,7 +9116,11 @@ setting_pppoe_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gb
 }
 
 static gboolean
-setting_gsm_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_gsm_details (NMSetting *setting,
+                     NmCli *nmc,
+                     const char *one_prop,
+                     gboolean secrets,
+                     NmcPropertyGetType type)
 {
 	NMSettingGsm *s_gsm = NM_SETTING_GSM (setting);
 	NmcOutputField *tmpl, *arr;
@@ -8906,18 +9137,19 @@ setting_gsm_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboo
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_gsm_get_number (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_gsm_get_username (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, GET_SECRET (secrets, setting, nmc_property_gsm_get_password));
-	set_val_str (arr, 4, nmc_property_gsm_get_password_flags (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 5, nmc_property_gsm_get_apn (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 6, nmc_property_gsm_get_network_id (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 7, GET_SECRET (secrets, setting, nmc_property_gsm_get_pin));
-	set_val_str (arr, 8, nmc_property_gsm_get_pin_flags (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 9, nmc_property_gsm_get_home_only (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 10, nmc_property_gsm_get_device_id (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 11, nmc_property_gsm_get_sim_id (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 12, nmc_property_gsm_get_sim_operator_id (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_gsm_get_number (setting, type));
+	set_val_str (arr, 2, nmc_property_gsm_get_username (setting, type));
+	set_val_str (arr, 3, GET_SECRET (secrets, setting, nmc_property_gsm_get_password, type));
+	set_val_str (arr, 4, nmc_property_gsm_get_password_flags (setting, type));
+	set_val_str (arr, 5, nmc_property_gsm_get_apn (setting, type));
+	set_val_str (arr, 6, nmc_property_gsm_get_network_id (setting, type));
+	set_val_str (arr, 7, GET_SECRET (secrets, setting, nmc_property_gsm_get_pin, type));
+	set_val_str (arr, 8, nmc_property_gsm_get_pin_flags (setting, type));
+	set_val_str (arr, 9, nmc_property_gsm_get_home_only (setting, type));
+	set_val_str (arr, 10, nmc_property_gsm_get_device_id (setting, type));
+	set_val_str (arr, 11, nmc_property_gsm_get_sim_id (setting, type));
+	set_val_str (arr, 12, nmc_property_gsm_get_sim_operator_id (setting, type));
+	set_val_str (arr, 13, nmc_property_gsm_get_mtu (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -8926,7 +9158,11 @@ setting_gsm_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboo
 }
 
 static gboolean
-setting_cdma_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_cdma_details (NMSetting *setting,
+                      NmCli *nmc,
+                      const char *one_prop,
+                      gboolean secrets,
+                      NmcPropertyGetType type)
 {
 	NMSettingCdma *s_cdma = NM_SETTING_CDMA (setting);
 	NmcOutputField *tmpl, *arr;
@@ -8943,10 +9179,11 @@ setting_cdma_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gbo
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_cdma_get_number (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_cdma_get_username (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, GET_SECRET (secrets, setting, nmc_property_cdma_get_password));
-	set_val_str (arr, 4, nmc_property_cdma_get_password_flags (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_cdma_get_number (setting, type));
+	set_val_str (arr, 2, nmc_property_cdma_get_username (setting, type));
+	set_val_str (arr, 3, GET_SECRET (secrets, setting, nmc_property_cdma_get_password, type));
+	set_val_str (arr, 4, nmc_property_cdma_get_password_flags (setting, type));
+	set_val_str (arr, 5, nmc_property_cdma_get_mtu (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -8955,7 +9192,11 @@ setting_cdma_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gbo
 }
 
 static gboolean
-setting_bluetooth_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_bluetooth_details (NMSetting *setting,
+                           NmCli *nmc,
+                           const char *one_prop,
+                           gboolean secrets,
+                           NmcPropertyGetType type)
 {
 	NMSettingBluetooth *s_bluetooth = NM_SETTING_BLUETOOTH (setting);
 	NmcOutputField *tmpl, *arr;
@@ -8972,8 +9213,8 @@ setting_bluetooth_details (NMSetting *setting, NmCli *nmc,  const char *one_prop
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_bluetooth_get_bdaddr (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_bluetooth_get_type (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_bluetooth_get_bdaddr (setting, type));
+	set_val_str (arr, 2, nmc_property_bluetooth_get_type (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -8982,7 +9223,11 @@ setting_bluetooth_details (NMSetting *setting, NmCli *nmc,  const char *one_prop
 }
 
 static gboolean
-setting_olpc_mesh_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_olpc_mesh_details (NMSetting *setting,
+                           NmCli *nmc,
+                           const char *one_prop,
+                           gboolean secrets,
+                           NmcPropertyGetType type)
 {
 	NMSettingOlpcMesh *s_olpc_mesh = NM_SETTING_OLPC_MESH (setting);
 	NmcOutputField *tmpl, *arr;
@@ -8999,9 +9244,9 @@ setting_olpc_mesh_details (NMSetting *setting, NmCli *nmc,  const char *one_prop
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_olpc_get_ssid (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_olpc_get_channel (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, nmc_property_olpc_get_anycast_address (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_olpc_get_ssid (setting, type));
+	set_val_str (arr, 2, nmc_property_olpc_get_channel (setting, type));
+	set_val_str (arr, 3, nmc_property_olpc_get_anycast_address (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -9010,7 +9255,11 @@ setting_olpc_mesh_details (NMSetting *setting, NmCli *nmc,  const char *one_prop
 }
 
 static gboolean
-setting_vpn_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_vpn_details (NMSetting *setting,
+                     NmCli *nmc,
+                     const char *one_prop,
+                     gboolean secrets,
+                     NmcPropertyGetType type)
 {
 	NMSettingVpn *s_vpn = NM_SETTING_VPN (setting);
 	NmcOutputField *tmpl, *arr;
@@ -9027,12 +9276,12 @@ setting_vpn_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboo
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_vpn_get_service_type (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_vpn_get_user_name (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, nmc_property_vpn_get_data (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 4, GET_SECRET (secrets, setting, nmc_property_vpn_get_secrets));
-	set_val_str (arr, 5, nmc_property_vpn_get_persistent (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 6, nmc_property_vpn_get_timeout (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_vpn_get_service_type (setting, type));
+	set_val_str (arr, 2, nmc_property_vpn_get_user_name (setting, type));
+	set_val_str (arr, 3, nmc_property_vpn_get_data (setting, type));
+	set_val_str (arr, 4, GET_SECRET (secrets, setting, nmc_property_vpn_get_secrets, type));
+	set_val_str (arr, 5, nmc_property_vpn_get_persistent (setting, type));
+	set_val_str (arr, 6, nmc_property_vpn_get_timeout (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -9041,7 +9290,11 @@ setting_vpn_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboo
 }
 
 static gboolean
-setting_wimax_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_wimax_details (NMSetting *setting,
+                       NmCli *nmc,
+                       const char *one_prop,
+                       gboolean secrets,
+                       NmcPropertyGetType type)
 {
 	NMSettingWimax *s_wimax = NM_SETTING_WIMAX (setting);
 	NmcOutputField *tmpl, *arr;
@@ -9058,8 +9311,8 @@ setting_wimax_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gb
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_wimax_get_mac_address (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_wimax_get_network_name (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_wimax_get_mac_address (setting, type));
+	set_val_str (arr, 2, nmc_property_wimax_get_network_name (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -9068,7 +9321,11 @@ setting_wimax_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gb
 }
 
 static gboolean
-setting_infiniband_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_infiniband_details (NMSetting *setting,
+                            NmCli *nmc,
+                            const char *one_prop,
+                            gboolean secrets,
+                            NmcPropertyGetType type)
 {
 	NMSettingInfiniband *s_infiniband = NM_SETTING_INFINIBAND (setting);
 	NmcOutputField *tmpl, *arr;
@@ -9085,11 +9342,11 @@ setting_infiniband_details (NMSetting *setting, NmCli *nmc,  const char *one_pro
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_ib_get_mac_address (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_ib_get_mtu (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, nmc_property_ib_get_transport_mode (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 4, nmc_property_ib_get_p_key (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 5, nmc_property_ib_get_parent (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_ib_get_mac_address (setting, type));
+	set_val_str (arr, 2, nmc_property_ib_get_mtu (setting, type));
+	set_val_str (arr, 3, nmc_property_ib_get_transport_mode (setting, type));
+	set_val_str (arr, 4, nmc_property_ib_get_p_key (setting, type));
+	set_val_str (arr, 5, nmc_property_ib_get_parent (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -9098,7 +9355,11 @@ setting_infiniband_details (NMSetting *setting, NmCli *nmc,  const char *one_pro
 }
 
 static gboolean
-setting_bond_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_bond_details (NMSetting *setting,
+                      NmCli *nmc,
+                      const char *one_prop,
+                      gboolean secrets,
+                      NmcPropertyGetType type)
 {
 	NMSettingBond *s_bond = NM_SETTING_BOND (setting);
 	NmcOutputField *tmpl, *arr;
@@ -9115,7 +9376,7 @@ setting_bond_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gbo
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_bond_get_options (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_bond_get_options (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -9124,7 +9385,11 @@ setting_bond_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gbo
 }
 
 static gboolean
-setting_vlan_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_vlan_details (NMSetting *setting,
+                      NmCli *nmc,
+                      const char *one_prop,
+                      gboolean secrets,
+                      NmcPropertyGetType type)
 {
 	NMSettingVlan *s_vlan = NM_SETTING_VLAN (setting);
 	NmcOutputField *tmpl, *arr;
@@ -9141,11 +9406,11 @@ setting_vlan_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gbo
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_vlan_get_parent (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_vlan_get_id (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, nmc_property_vlan_get_flags (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 4, nmc_property_vlan_get_ingress_priority_map (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 5, nmc_property_vlan_get_egress_priority_map (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_vlan_get_parent (setting, type));
+	set_val_str (arr, 2, nmc_property_vlan_get_id (setting, type));
+	set_val_str (arr, 3, nmc_property_vlan_get_flags (setting, type));
+	set_val_str (arr, 4, nmc_property_vlan_get_ingress_priority_map (setting, type));
+	set_val_str (arr, 5, nmc_property_vlan_get_egress_priority_map (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -9154,7 +9419,11 @@ setting_vlan_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gbo
 }
 
 static gboolean
-setting_adsl_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_adsl_details (NMSetting *setting,
+                      NmCli *nmc,
+                      const char *one_prop,
+                      gboolean secrets,
+                      NmcPropertyGetType type)
 {
 	NMSettingAdsl *s_adsl = NM_SETTING_ADSL (setting);
 	NmcOutputField *tmpl, *arr;
@@ -9171,13 +9440,13 @@ setting_adsl_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gbo
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_adsl_get_username (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, GET_SECRET (secrets, setting, nmc_property_adsl_get_password));
-	set_val_str (arr, 3, nmc_property_adsl_get_password_flags (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 4, nmc_property_adsl_get_protocol (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 5, nmc_property_adsl_get_encapsulation (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 6, nmc_property_adsl_get_vpi (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 7, nmc_property_adsl_get_vci (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_adsl_get_username (setting, type));
+	set_val_str (arr, 2, GET_SECRET (secrets, setting, nmc_property_adsl_get_password, type));
+	set_val_str (arr, 3, nmc_property_adsl_get_password_flags (setting, type));
+	set_val_str (arr, 4, nmc_property_adsl_get_protocol (setting, type));
+	set_val_str (arr, 5, nmc_property_adsl_get_encapsulation (setting, type));
+	set_val_str (arr, 6, nmc_property_adsl_get_vpi (setting, type));
+	set_val_str (arr, 7, nmc_property_adsl_get_vci (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -9186,7 +9455,11 @@ setting_adsl_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gbo
 }
 
 static gboolean
-setting_bridge_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_bridge_details (NMSetting *setting,
+                        NmCli *nmc,
+                        const char *one_prop,
+                        gboolean secrets,
+                        NmcPropertyGetType type)
 {
 	NMSettingBridge *s_bridge = NM_SETTING_BRIDGE (setting);
 	NmcOutputField *tmpl, *arr;
@@ -9203,14 +9476,14 @@ setting_bridge_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, g
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_bridge_get_mac_address (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_bridge_get_stp (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, nmc_property_bridge_get_priority (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 4, nmc_property_bridge_get_forward_delay (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 5, nmc_property_bridge_get_hello_time (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 6, nmc_property_bridge_get_max_age (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 7, nmc_property_bridge_get_ageing_time (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 8, nmc_property_bridge_get_multicast_snooping (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_bridge_get_mac_address (setting, type));
+	set_val_str (arr, 2, nmc_property_bridge_get_stp (setting, type));
+	set_val_str (arr, 3, nmc_property_bridge_get_priority (setting, type));
+	set_val_str (arr, 4, nmc_property_bridge_get_forward_delay (setting, type));
+	set_val_str (arr, 5, nmc_property_bridge_get_hello_time (setting, type));
+	set_val_str (arr, 6, nmc_property_bridge_get_max_age (setting, type));
+	set_val_str (arr, 7, nmc_property_bridge_get_ageing_time (setting, type));
+	set_val_str (arr, 8, nmc_property_bridge_get_multicast_snooping (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -9219,7 +9492,11 @@ setting_bridge_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, g
 }
 
 static gboolean
-setting_bridge_port_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_bridge_port_details (NMSetting *setting,
+                             NmCli *nmc,
+                             const char *one_prop,
+                             gboolean secrets,
+                             NmcPropertyGetType type)
 {
 	NMSettingBridgePort *s_bridge_port = NM_SETTING_BRIDGE_PORT (setting);
 	NmcOutputField *tmpl, *arr;
@@ -9236,9 +9513,9 @@ setting_bridge_port_details (NMSetting *setting, NmCli *nmc,  const char *one_pr
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_bridge_port_get_priority (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_bridge_port_get_path_cost (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, nmc_property_bridge_port_get_hairpin_mode (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_bridge_port_get_priority (setting, type));
+	set_val_str (arr, 2, nmc_property_bridge_port_get_path_cost (setting, type));
+	set_val_str (arr, 3, nmc_property_bridge_port_get_hairpin_mode (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -9247,7 +9524,11 @@ setting_bridge_port_details (NMSetting *setting, NmCli *nmc,  const char *one_pr
 }
 
 static gboolean
-setting_team_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_team_details (NMSetting *setting,
+                      NmCli *nmc,
+                      const char *one_prop,
+                      gboolean secrets,
+                      NmcPropertyGetType type)
 {
 	NMSettingTeam *s_team = NM_SETTING_TEAM (setting);
 	NmcOutputField *tmpl, *arr;
@@ -9264,7 +9545,7 @@ setting_team_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gbo
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_team_get_config (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_team_get_config (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -9273,7 +9554,11 @@ setting_team_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gbo
 }
 
 static gboolean
-setting_team_port_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_team_port_details (NMSetting *setting,
+                           NmCli *nmc,
+                           const char *one_prop,
+                           gboolean secrets,
+                           NmcPropertyGetType type)
 {
 	NMSettingTeamPort *s_team_port = NM_SETTING_TEAM_PORT (setting);
 	NmcOutputField *tmpl, *arr;
@@ -9290,7 +9575,7 @@ setting_team_port_details (NMSetting *setting, NmCli *nmc,  const char *one_prop
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_team_port_get_config (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_team_port_get_config (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -9299,7 +9584,11 @@ setting_team_port_details (NMSetting *setting, NmCli *nmc,  const char *one_prop
 }
 
 static gboolean
-setting_dcb_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_dcb_details (NMSetting *setting,
+                     NmCli *nmc,
+                     const char *one_prop,
+                     gboolean secrets,
+                     NmcPropertyGetType type)
 {
 	NMSettingDcb *s_dcb = NM_SETTING_DCB (setting);
 	NmcOutputField *tmpl, *arr;
@@ -9316,21 +9605,21 @@ setting_dcb_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboo
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_dcb_get_app_fcoe_flags (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_dcb_get_app_fcoe_priority (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, nmc_property_dcb_get_app_fcoe_mode (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 4, nmc_property_dcb_get_app_iscsi_flags (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 5, nmc_property_dcb_get_app_iscsi_priority (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 6, nmc_property_dcb_get_app_fip_flags (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 7, nmc_property_dcb_get_app_fip_priority (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 8, nmc_property_dcb_get_pfc_flags (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 9, nmc_property_dcb_get_pfc (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 10, nmc_property_dcb_get_pg_flags (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 11, nmc_property_dcb_get_pg_group_id (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 12, nmc_property_dcb_get_pg_group_bandwidth (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 13, nmc_property_dcb_get_pg_bandwidth (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 14, nmc_property_dcb_get_pg_strict (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 15, nmc_property_dcb_get_pg_traffic_class (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_dcb_get_app_fcoe_flags (setting, type));
+	set_val_str (arr, 2, nmc_property_dcb_get_app_fcoe_priority (setting, type));
+	set_val_str (arr, 3, nmc_property_dcb_get_app_fcoe_mode (setting, type));
+	set_val_str (arr, 4, nmc_property_dcb_get_app_iscsi_flags (setting, type));
+	set_val_str (arr, 5, nmc_property_dcb_get_app_iscsi_priority (setting, type));
+	set_val_str (arr, 6, nmc_property_dcb_get_app_fip_flags (setting, type));
+	set_val_str (arr, 7, nmc_property_dcb_get_app_fip_priority (setting, type));
+	set_val_str (arr, 8, nmc_property_dcb_get_pfc_flags (setting, type));
+	set_val_str (arr, 9, nmc_property_dcb_get_pfc (setting, type));
+	set_val_str (arr, 10, nmc_property_dcb_get_pg_flags (setting, type));
+	set_val_str (arr, 11, nmc_property_dcb_get_pg_group_id (setting, type));
+	set_val_str (arr, 12, nmc_property_dcb_get_pg_group_bandwidth (setting, type));
+	set_val_str (arr, 13, nmc_property_dcb_get_pg_bandwidth (setting, type));
+	set_val_str (arr, 14, nmc_property_dcb_get_pg_strict (setting, type));
+	set_val_str (arr, 15, nmc_property_dcb_get_pg_traffic_class (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -9339,7 +9628,11 @@ setting_dcb_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboo
 }
 
 static gboolean
-setting_tun_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_tun_details (NMSetting *setting,
+                     NmCli *nmc,
+                     const char *one_prop,
+                     gboolean secrets,
+                     NmcPropertyGetType type)
 {
 	NMSettingTun *s_tun = NM_SETTING_TUN (setting);
 	NmcOutputField *tmpl, *arr;
@@ -9356,12 +9649,12 @@ setting_tun_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboo
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_tun_get_mode (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_tun_get_owner (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, nmc_property_tun_get_group (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 4, nmc_property_tun_get_pi (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 5, nmc_property_tun_get_vnet_hdr (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 6, nmc_property_tun_get_multi_queue (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_tun_get_mode (setting, type));
+	set_val_str (arr, 2, nmc_property_tun_get_owner (setting, type));
+	set_val_str (arr, 3, nmc_property_tun_get_group (setting, type));
+	set_val_str (arr, 4, nmc_property_tun_get_pi (setting, type));
+	set_val_str (arr, 5, nmc_property_tun_get_vnet_hdr (setting, type));
+	set_val_str (arr, 6, nmc_property_tun_get_multi_queue (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -9370,7 +9663,11 @@ setting_tun_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboo
 }
 
 static gboolean
-setting_ip_tunnel_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_ip_tunnel_details (NMSetting *setting,
+                           NmCli *nmc,
+                           const char *one_prop,
+                           gboolean secrets,
+                           NmcPropertyGetType type)
 {
 	NMSettingIPTunnel *s_ip_tunnel = NM_SETTING_IP_TUNNEL (setting);
 	NmcOutputField *tmpl, *arr;
@@ -9387,18 +9684,18 @@ setting_ip_tunnel_details (NMSetting *setting, NmCli *nmc,  const char *one_prop
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_ip_tunnel_get_mode (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_ip_tunnel_get_parent (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, nmc_property_ip_tunnel_get_local (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 4, nmc_property_ip_tunnel_get_remote (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 5, nmc_property_ip_tunnel_get_ttl (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 6, nmc_property_ip_tunnel_get_tos (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 7, nmc_property_ip_tunnel_get_path_mtu_discovery (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 8, nmc_property_ip_tunnel_get_input_key (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 9, nmc_property_ip_tunnel_get_output_key (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 10, nmc_property_ip_tunnel_get_encapsulation_limit (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 11, nmc_property_ip_tunnel_get_flow_label (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 12, nmc_property_ip_tunnel_get_mtu (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_ip_tunnel_get_mode (setting, type));
+	set_val_str (arr, 2, nmc_property_ip_tunnel_get_parent (setting, type));
+	set_val_str (arr, 3, nmc_property_ip_tunnel_get_local (setting, type));
+	set_val_str (arr, 4, nmc_property_ip_tunnel_get_remote (setting, type));
+	set_val_str (arr, 5, nmc_property_ip_tunnel_get_ttl (setting, type));
+	set_val_str (arr, 6, nmc_property_ip_tunnel_get_tos (setting, type));
+	set_val_str (arr, 7, nmc_property_ip_tunnel_get_path_mtu_discovery (setting, type));
+	set_val_str (arr, 8, nmc_property_ip_tunnel_get_input_key (setting, type));
+	set_val_str (arr, 9, nmc_property_ip_tunnel_get_output_key (setting, type));
+	set_val_str (arr, 10, nmc_property_ip_tunnel_get_encapsulation_limit (setting, type));
+	set_val_str (arr, 11, nmc_property_ip_tunnel_get_flow_label (setting, type));
+	set_val_str (arr, 12, nmc_property_ip_tunnel_get_mtu (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -9407,7 +9704,11 @@ setting_ip_tunnel_details (NMSetting *setting, NmCli *nmc,  const char *one_prop
 }
 
 static gboolean
-setting_macsec_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_macsec_details (NMSetting *setting,
+                        NmCli *nmc,
+                        const char *one_prop,
+                        gboolean secrets,
+                        NmcPropertyGetType type)
 {
 	NMSettingMacsec *s_macsec = NM_SETTING_MACSEC (setting);
 	NmcOutputField *tmpl, *arr;
@@ -9424,14 +9725,14 @@ setting_macsec_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, g
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_macsec_get_parent (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_macsec_get_mode (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, nmc_property_macsec_get_encrypt (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 4, GET_SECRET (secrets, setting, nmc_property_macsec_get_mka_cak));
-	set_val_str (arr, 5, nmc_property_macsec_get_mka_cak_flags (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 6, nmc_property_macsec_get_mka_ckn (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 7, nmc_property_macsec_get_port (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 8, nmc_property_macsec_get_validation (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_macsec_get_parent (setting, type));
+	set_val_str (arr, 2, nmc_property_macsec_get_mode (setting, type));
+	set_val_str (arr, 3, nmc_property_macsec_get_encrypt (setting, type));
+	set_val_str (arr, 4, GET_SECRET (secrets, setting, nmc_property_macsec_get_mka_cak, type));
+	set_val_str (arr, 5, nmc_property_macsec_get_mka_cak_flags (setting, type));
+	set_val_str (arr, 6, nmc_property_macsec_get_mka_ckn (setting, type));
+	set_val_str (arr, 7, nmc_property_macsec_get_port (setting, type));
+	set_val_str (arr, 8, nmc_property_macsec_get_validation (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -9440,7 +9741,11 @@ setting_macsec_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, g
 }
 
 static gboolean
-setting_macvlan_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_macvlan_details (NMSetting *setting,
+                         NmCli *nmc,
+                         const char *one_prop,
+                         gboolean secrets,
+                         NmcPropertyGetType type)
 {
 	NMSettingMacvlan *s_macvlan = NM_SETTING_MACVLAN (setting);
 	NmcOutputField *tmpl, *arr;
@@ -9457,10 +9762,10 @@ setting_macvlan_details (NMSetting *setting, NmCli *nmc,  const char *one_prop,
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_macvlan_get_parent (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_macvlan_get_mode (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, nmc_property_macvlan_get_promiscuous (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 4, nmc_property_macvlan_get_tap (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_macvlan_get_parent (setting, type));
+	set_val_str (arr, 2, nmc_property_macvlan_get_mode (setting, type));
+	set_val_str (arr, 3, nmc_property_macvlan_get_promiscuous (setting, type));
+	set_val_str (arr, 4, nmc_property_macvlan_get_tap (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -9469,7 +9774,11 @@ setting_macvlan_details (NMSetting *setting, NmCli *nmc,  const char *one_prop,
 }
 
 static gboolean
-setting_vxlan_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_vxlan_details (NMSetting *setting,
+                       NmCli *nmc,
+                       const char *one_prop,
+                       gboolean secrets,
+                       NmcPropertyGetType type)
 {
 	NMSettingVxlan *s_vxlan = NM_SETTING_VXLAN (setting);
 	NmcOutputField *tmpl, *arr;
@@ -9486,22 +9795,22 @@ setting_vxlan_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gb
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_vxlan_get_parent (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_vxlan_get_id (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, nmc_property_vxlan_get_local (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 4, nmc_property_vxlan_get_remote (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 5, nmc_property_vxlan_get_source_port_min (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 6, nmc_property_vxlan_get_source_port_max (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 7, nmc_property_vxlan_get_destination_port (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 8, nmc_property_vxlan_get_tos (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 9, nmc_property_vxlan_get_ttl (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 10, nmc_property_vxlan_get_ageing (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 11, nmc_property_vxlan_get_limit (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 12, nmc_property_vxlan_get_learning (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 13, nmc_property_vxlan_get_proxy (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 14, nmc_property_vxlan_get_rsc (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 15, nmc_property_vxlan_get_l2_miss (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 16, nmc_property_vxlan_get_l3_miss (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_vxlan_get_parent (setting, type));
+	set_val_str (arr, 2, nmc_property_vxlan_get_id (setting, type));
+	set_val_str (arr, 3, nmc_property_vxlan_get_local (setting, type));
+	set_val_str (arr, 4, nmc_property_vxlan_get_remote (setting, type));
+	set_val_str (arr, 5, nmc_property_vxlan_get_source_port_min (setting, type));
+	set_val_str (arr, 6, nmc_property_vxlan_get_source_port_max (setting, type));
+	set_val_str (arr, 7, nmc_property_vxlan_get_destination_port (setting, type));
+	set_val_str (arr, 8, nmc_property_vxlan_get_tos (setting, type));
+	set_val_str (arr, 9, nmc_property_vxlan_get_ttl (setting, type));
+	set_val_str (arr, 10, nmc_property_vxlan_get_ageing (setting, type));
+	set_val_str (arr, 11, nmc_property_vxlan_get_limit (setting, type));
+	set_val_str (arr, 12, nmc_property_vxlan_get_learning (setting, type));
+	set_val_str (arr, 13, nmc_property_vxlan_get_proxy (setting, type));
+	set_val_str (arr, 14, nmc_property_vxlan_get_rsc (setting, type));
+	set_val_str (arr, 15, nmc_property_vxlan_get_l2_miss (setting, type));
+	set_val_str (arr, 16, nmc_property_vxlan_get_l3_miss (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -9510,7 +9819,11 @@ setting_vxlan_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gb
 }
 
 static gboolean
-setting_proxy_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
+setting_proxy_details (NMSetting *setting,
+                       NmCli *nmc,
+                       const char *one_prop,
+                       gboolean secrets,
+                       NmcPropertyGetType type)
 {
 	NMSettingProxy *s_proxy = NM_SETTING_PROXY (setting);
 	NmcOutputField *tmpl, *arr;
@@ -9527,10 +9840,10 @@ setting_proxy_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gb
 
 	arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX);
 	set_val_str (arr, 0, g_strdup (nm_setting_get_name (setting)));
-	set_val_str (arr, 1, nmc_property_proxy_get_method (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 2, nmc_property_proxy_get_browser_only (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 3, nmc_property_proxy_get_pac_url (setting, NMC_PROPERTY_GET_PRETTY));
-	set_val_str (arr, 4, nmc_property_proxy_get_pac_script (setting, NMC_PROPERTY_GET_PRETTY));
+	set_val_str (arr, 1, nmc_property_proxy_get_method (setting, type));
+	set_val_str (arr, 2, nmc_property_proxy_get_browser_only (setting, type));
+	set_val_str (arr, 3, nmc_property_proxy_get_pac_url (setting, type));
+	set_val_str (arr, 4, nmc_property_proxy_get_pac_script (setting, type));
 	g_ptr_array_add (nmc->output_data, arr);
 
 	print_data (nmc);  /* Print all data */
@@ -9540,7 +9853,11 @@ setting_proxy_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gb
 
 typedef struct {
 	const char *sname;
-	gboolean (*func) (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets);
+	gboolean (*func) (NMSetting *setting,
+	                  NmCli *nmc,
+	                  const char *one_prop,
+	                  gboolean secrets,
+	                  NmcPropertyGetType type);
 } SettingDetails;
 
 static const SettingDetails detail_printers[] = {
@@ -9582,12 +9899,16 @@ gboolean
 setting_details (NMSetting *setting, NmCli *nmc,  const char *one_prop, gboolean secrets)
 {
 	const SettingDetails *iter = &detail_printers[0];
+	NmcPropertyGetType type = NMC_PROPERTY_GET_PRETTY;
 
 	g_return_val_if_fail (NM_IS_SETTING (setting), FALSE);
 
+	if (nmc->print_output == NMC_PRINT_TERSE)
+		type = NMC_PROPERTY_GET_PARSABLE;
+
 	while (iter->sname) {
 		if (nm_setting_lookup_type (iter->sname) == G_OBJECT_TYPE (setting))
-			return iter->func (setting, nmc, one_prop, secrets);
+			return iter->func (setting, nmc, one_prop, secrets, type);
 		iter++;
 	}