From b9fef07fff7ecc806563162b8311a070e98b23e6 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Fri, 27 Jun 2014 09:09:47 -0400 Subject: [PATCH] libnm-util: remove NM_UTIL_PRIVATE_CALL, NMSettingIP4Config:address-labels Since libnm-util is no longer used from within NM, its copy of NM_UTIL_PRIVATE_CALL is now useless, and the internal-only NMSettingIP4Config:address-labels property is no longer needed. --- libnm-util/nm-setting-ip4-config.c | 130 ++---------------------- libnm-util/nm-setting-private.h | 6 -- libnm-util/nm-utils-private.h | 28 ------ libnm-util/nm-utils.c | 20 ++-- libnm-util/tests/test-general.c | 155 +---------------------------- 5 files changed, 17 insertions(+), 322 deletions(-) diff --git a/libnm-util/nm-setting-ip4-config.c b/libnm-util/nm-setting-ip4-config.c index bc2ef8731a..a067627f7a 100644 --- a/libnm-util/nm-setting-ip4-config.c +++ b/libnm-util/nm-setting-ip4-config.c @@ -75,7 +75,6 @@ typedef struct { GArray *dns; /* array of guint32; elements in network byte order */ GSList *dns_search; /* list of strings */ GSList *addresses; /* array of NMIP4Address */ - GSList *address_labels; /* list of strings */ GSList *routes; /* array of NMIP4Route */ gboolean ignore_auto_routes; gboolean ignore_auto_dns; @@ -92,7 +91,6 @@ enum { PROP_DNS, PROP_DNS_SEARCH, PROP_ADDRESSES, - PROP_ADDRESS_LABELS, PROP_ROUTES, PROP_IGNORE_AUTO_ROUTES, PROP_IGNORE_AUTO_DNS, @@ -439,19 +437,6 @@ nm_setting_ip4_config_get_address (NMSettingIP4Config *setting, guint32 i) return (NMIP4Address *) g_slist_nth_data (priv->addresses, i); } -const char * -nm_setting_ip4_config_get_address_label (NMSettingIP4Config *setting, guint32 i) -{ - NMSettingIP4ConfigPrivate *priv; - - g_return_val_if_fail (NM_IS_SETTING_IP4_CONFIG (setting), NULL); - - priv = NM_SETTING_IP4_CONFIG_GET_PRIVATE (setting); - g_return_val_if_fail (i <= g_slist_length (priv->address_labels), NULL); - - return (const char *) g_slist_nth_data (priv->address_labels, i); -} - /** * nm_setting_ip4_config_add_address: * @setting: the #NMSettingIP4Config @@ -466,14 +451,6 @@ nm_setting_ip4_config_get_address_label (NMSettingIP4Config *setting, guint32 i) gboolean nm_setting_ip4_config_add_address (NMSettingIP4Config *setting, NMIP4Address *address) -{ - return nm_setting_ip4_config_add_address_with_label (setting, address, NULL); -} - -gboolean -nm_setting_ip4_config_add_address_with_label (NMSettingIP4Config *setting, - NMIP4Address *address, - const char *label) { NMSettingIP4ConfigPrivate *priv; NMIP4Address *copy; @@ -490,8 +467,6 @@ nm_setting_ip4_config_add_address_with_label (NMSettingIP4Config *setting, copy = nm_ip4_address_dup (address); priv->addresses = g_slist_append (priv->addresses, copy); - priv->address_labels = g_slist_append (priv->address_labels, g_strdup (label)); - g_object_notify (G_OBJECT (setting), NM_SETTING_IP4_CONFIG_ADDRESSES); return TRUE; } @@ -507,21 +482,16 @@ void nm_setting_ip4_config_remove_address (NMSettingIP4Config *setting, guint32 i) { NMSettingIP4ConfigPrivate *priv; - GSList *addr, *label; + GSList *elt; g_return_if_fail (NM_IS_SETTING_IP4_CONFIG (setting)); priv = NM_SETTING_IP4_CONFIG_GET_PRIVATE (setting); - addr = g_slist_nth (priv->addresses, i); - label = g_slist_nth (priv->address_labels, i); - g_return_if_fail (addr != NULL && label != NULL); - - nm_ip4_address_unref ((NMIP4Address *) addr->data); - priv->addresses = g_slist_delete_link (priv->addresses, addr); - if (label->data) - g_free (label->data); - priv->address_labels = g_slist_delete_link (priv->address_labels, label); + elt = g_slist_nth (priv->addresses, i); + g_return_if_fail (elt != NULL); + nm_ip4_address_unref ((NMIP4Address *) elt->data); + priv->addresses = g_slist_delete_link (priv->addresses, elt); g_object_notify (G_OBJECT (setting), NM_SETTING_IP4_CONFIG_ADDRESSES); } @@ -573,8 +543,6 @@ nm_setting_ip4_config_clear_addresses (NMSettingIP4Config *setting) g_slist_free_full (priv->addresses, (GDestroyNotify) nm_ip4_address_unref); priv->addresses = NULL; - g_slist_free_full (priv->address_labels, g_free); - priv->address_labels = NULL; g_object_notify (G_OBJECT (setting), NM_SETTING_IP4_CONFIG_ADDRESSES); } @@ -846,35 +814,11 @@ nm_setting_ip4_config_get_may_fail (NMSettingIP4Config *setting) return NM_SETTING_IP4_CONFIG_GET_PRIVATE (setting)->may_fail; } -static gboolean -verify_label (const char *label) -{ - const char *p; - char *iface; - - p = strchr (label, ':'); - if (!p) - return FALSE; - iface = g_strndup (label, p - label); - if (!nm_utils_iface_valid_name (iface)) { - g_free (iface); - return FALSE; - } - g_free (iface); - - for (p++; *p; p++) { - if (!g_ascii_isalnum (*p) && *p != '_') - return FALSE; - } - - return TRUE; -} - static gboolean verify (NMSetting *setting, GSList *all_settings, GError **error) { NMSettingIP4ConfigPrivate *priv = NM_SETTING_IP4_CONFIG_GET_PRIVATE (setting); - GSList *iter, *l_iter; + GSList *iter; int i; if (!priv->method) { @@ -961,11 +905,8 @@ verify (NMSetting *setting, GSList *all_settings, GError **error) } /* Validate addresses */ - for (iter = priv->addresses, l_iter = priv->address_labels, i = 0; - iter && l_iter; - iter = g_slist_next (iter), l_iter = g_slist_next (l_iter), i++) { + for (iter = priv->addresses, i = 0; iter; iter = g_slist_next (iter), i++) { NMIP4Address *addr = (NMIP4Address *) iter->data; - const char *label = (const char *) l_iter->data; guint32 prefix = nm_ip4_address_get_prefix (addr); if (!nm_ip4_address_get_address (addr)) { @@ -987,27 +928,6 @@ verify (NMSetting *setting, GSList *all_settings, GError **error) g_prefix_error (error, "%s.%s: ", NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_ADDRESSES); return FALSE; } - - if (label && !verify_label (label)) { - g_set_error (error, - NM_SETTING_IP4_CONFIG_ERROR, - NM_SETTING_IP4_CONFIG_ERROR_INVALID_PROPERTY, - _("%d. IPv4 address has invalid label '%s'"), - i+1, label); - g_prefix_error (error, "%s.%s: ", NM_SETTING_IP4_CONFIG_SETTING_NAME, "address-labels"); - return FALSE; - } - } - - if (iter || l_iter) { - g_set_error (error, - NM_SETTING_IP4_CONFIG_ERROR, - NM_SETTING_IP4_CONFIG_ERROR_INVALID_PROPERTY, - _("IPv4 address / label count mismatch (%d vs %d)"), - g_slist_length (priv->addresses), - g_slist_length (priv->address_labels)); - g_prefix_error (error, "%s.%s: ", NM_SETTING_IP4_CONFIG_SETTING_NAME, "address-labels"); - return FALSE; } /* Validate routes */ @@ -1063,7 +983,6 @@ finalize (GObject *object) g_slist_free_full (priv->dns_search, g_free); g_slist_free_full (priv->addresses, (GDestroyNotify) nm_ip4_address_unref); - g_slist_free_full (priv->address_labels, g_free); g_slist_free_full (priv->routes, (GDestroyNotify) nm_ip4_route_unref); G_OBJECT_CLASS (nm_setting_ip4_config_parent_class)->finalize (object); @@ -1075,7 +994,6 @@ set_property (GObject *object, guint prop_id, { NMSettingIP4Config *setting = NM_SETTING_IP4_CONFIG (object); NMSettingIP4ConfigPrivate *priv = NM_SETTING_IP4_CONFIG_GET_PRIVATE (setting); - GSList *iter; switch (prop_id) { case PROP_METHOD: @@ -1095,24 +1013,6 @@ set_property (GObject *object, guint prop_id, case PROP_ADDRESSES: g_slist_free_full (priv->addresses, (GDestroyNotify) nm_ip4_address_unref); priv->addresses = nm_utils_ip4_addresses_from_gvalue (value); - - if (g_slist_length (priv->addresses) != g_slist_length (priv->address_labels)) { - g_slist_free_full (priv->address_labels, g_free); - priv->address_labels = NULL; - for (iter = priv->addresses; iter; iter = iter->next) - priv->address_labels = g_slist_prepend (priv->address_labels, NULL); - } - break; - case PROP_ADDRESS_LABELS: - g_slist_free_full (priv->address_labels, g_free); - priv->address_labels = g_value_dup_boxed (value); - /* NULLs get converted to "" when this is sent over D-Bus. */ - for (iter = priv->address_labels; iter; iter = iter->next) { - if (!g_strcmp0 (iter->data, "")) { - g_free (iter->data); - iter->data = NULL; - } - } break; case PROP_ROUTES: g_slist_free_full (priv->routes, (GDestroyNotify) nm_ip4_route_unref); @@ -1167,9 +1067,6 @@ get_property (GObject *object, guint prop_id, case PROP_ADDRESSES: nm_utils_ip4_addresses_to_gvalue (priv->addresses, value); break; - case PROP_ADDRESS_LABELS: - g_value_set_boxed (value, priv->address_labels); - break; case PROP_ROUTES: nm_utils_ip4_routes_to_gvalue (priv->routes, value); break; @@ -1292,19 +1189,6 @@ nm_setting_ip4_config_class_init (NMSettingIP4ConfigClass *setting_class) NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS)); - /** - * NMSettingIP4Config:address-labels: - * - * Internal use only. - **/ - g_object_class_install_property - (object_class, PROP_ADDRESS_LABELS, - _nm_param_spec_specialized ("address-labels", "", "", - DBUS_TYPE_G_LIST_OF_STRING, - G_PARAM_READWRITE | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); - /** * NMSettingIP4Config:routes: * diff --git a/libnm-util/nm-setting-private.h b/libnm-util/nm-setting-private.h index 99590b9e14..9dad7eada5 100644 --- a/libnm-util/nm-setting-private.h +++ b/libnm-util/nm-setting-private.h @@ -21,7 +21,6 @@ #ifndef NM_SETTING_PRIVATE_H #define NM_SETTING_PRIVATE_H -#include "nm-setting.h" #include "nm-glib-compat.h" #define NM_SETTING_SECRET_FLAGS_ALL \ @@ -103,11 +102,6 @@ static void __attribute__((constructor)) register_setting (void) \ NMSetting *nm_setting_find_in_list (GSList *settings_list, const char *setting_name); -/* Private NMSettingIP4Config methods */ -#include "nm-setting-ip4-config.h" -const char *nm_setting_ip4_config_get_address_label (NMSettingIP4Config *setting, guint32 i); -gboolean nm_setting_ip4_config_add_address_with_label (NMSettingIP4Config *setting, NMIP4Address *address, const char *label); - NMSettingVerifyResult _nm_setting_verify_deprecated_virtual_iface_name (const char *interface_name, gboolean allow_missing, const char *setting_name, diff --git a/libnm-util/nm-utils-private.h b/libnm-util/nm-utils-private.h index 6e6d7b7247..0e7be21e28 100644 --- a/libnm-util/nm-utils-private.h +++ b/libnm-util/nm-utils-private.h @@ -34,32 +34,4 @@ gboolean _nm_utils_gvalue_array_validate (GValueArray *elements, void _nm_value_transforms_register (void); -/***********************************************************/ - -typedef struct NMUtilsPrivateData { - const char * (*nm_setting_ip4_config_get_address_label) (NMSettingIP4Config *setting, - guint32 i); - gboolean (*nm_setting_ip4_config_add_address_with_label) (NMSettingIP4Config *setting, - NMIP4Address *address, - const char *label); -} NMUtilsPrivateData; - -const NMUtilsPrivateData *nm_utils_get_private (void); - -/** - * NM_UTILS_PRIVATE_CALL: - * @call: a call to a private libnm-util function - * - * Used to call private libnm-util functions. Eg, if there was a - * private function called nm_foo_get_bar(), you could call it like: - * - * bar = NM_UTILS_PRIVATE_CALL (nm_foo_get_bar (foo, x, y, z)); - * - * This macro only exists inside the NetworkManager source tree and - * is not part of the public API. - * - * Since: 0.9.10 - */ -#define NM_UTILS_PRIVATE_CALL(call) (nm_utils_get_private ()->call) - #endif diff --git a/libnm-util/nm-utils.c b/libnm-util/nm-utils.c index 753edd8473..9c96601c90 100644 --- a/libnm-util/nm-utils.c +++ b/libnm-util/nm-utils.c @@ -2490,13 +2490,10 @@ nm_utils_check_virtual_device_compatibility (GType virtual_type, GType other_typ /***********************************************************/ -/* Unused prototype to make the compiler happy */ -const NMUtilsPrivateData *nm_util_get_private (void); +/* Unused prototypes to make the compiler happy */ +gconstpointer nm_utils_get_private (void); +gconstpointer nm_util_get_private (void); -static const NMUtilsPrivateData data = { - .nm_setting_ip4_config_get_address_label = nm_setting_ip4_config_get_address_label, - .nm_setting_ip4_config_add_address_with_label = nm_setting_ip4_config_add_address_with_label, -}; /** * nm_utils_get_private: @@ -2508,10 +2505,11 @@ static const NMUtilsPrivateData data = { * * Since: 0.9.10 */ -const NMUtilsPrivateData * +gconstpointer nm_utils_get_private (void) { - return &data; + /* We told you not to use it! */ + g_assert_not_reached (); } /** @@ -2523,9 +2521,9 @@ nm_utils_get_private (void) * * Since: 0.9.10 */ -const NMUtilsPrivateData * +gconstpointer nm_util_get_private (void) { - /* Compat function to preserve ABI */ - return nm_utils_get_private (); + /* We told you not to use it! */ + g_assert_not_reached (); } diff --git a/libnm-util/tests/test-general.c b/libnm-util/tests/test-general.c index 0b3283ed51..877c38a316 100644 --- a/libnm-util/tests/test-general.c +++ b/libnm-util/tests/test-general.c @@ -41,7 +41,6 @@ #include "nm-setting-vlan.h" #include "nm-setting-bond.h" #include "nm-utils.h" -#include "nm-utils-private.h" #include "nm-dbus-glib-types.h" #include "nm-test-utils.h" @@ -307,156 +306,6 @@ test_setting_vpn_modify_during_foreach (void) g_object_unref (s_vpn); } -static void -test_setting_ip4_config_labels (void) -{ - NMSettingIP4Config *s_ip4; - NMIP4Address *addr; - const char *label; - GPtrArray *addrs; - GSList *labels; - GError *error = NULL; - - s_ip4 = (NMSettingIP4Config *) nm_setting_ip4_config_new (); - g_object_set (G_OBJECT (s_ip4), - NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_MANUAL, - NULL); - - /* addr 1 */ - addr = nm_ip4_address_new (); - nm_ip4_address_set_address (addr, 0x01010101); - nm_ip4_address_set_prefix (addr, 24); - - nm_setting_ip4_config_add_address (s_ip4, addr); - nm_ip4_address_unref (addr); - nm_setting_verify (NM_SETTING (s_ip4), NULL, &error); - g_assert_no_error (error); - - label = NM_UTILS_PRIVATE_CALL (nm_setting_ip4_config_get_address_label (s_ip4, 0)); - g_assert_cmpstr (label, ==, NULL); - - /* addr 2 */ - addr = nm_ip4_address_new (); - nm_ip4_address_set_address (addr, 0x02020202); - nm_ip4_address_set_prefix (addr, 24); - - NM_UTILS_PRIVATE_CALL (nm_setting_ip4_config_add_address_with_label (s_ip4, addr, "eth0:1")); - nm_ip4_address_unref (addr); - nm_setting_verify (NM_SETTING (s_ip4), NULL, &error); - g_assert_no_error (error); - - label = NM_UTILS_PRIVATE_CALL (nm_setting_ip4_config_get_address_label (s_ip4, 1)); - g_assert_cmpstr (label, ==, "eth0:1"); - - /* addr 3 */ - addr = nm_ip4_address_new (); - nm_ip4_address_set_address (addr, 0x03030303); - nm_ip4_address_set_prefix (addr, 24); - - NM_UTILS_PRIVATE_CALL (nm_setting_ip4_config_add_address_with_label (s_ip4, addr, NULL)); - nm_ip4_address_unref (addr); - nm_setting_verify (NM_SETTING (s_ip4), NULL, &error); - g_assert_no_error (error); - - label = NM_UTILS_PRIVATE_CALL (nm_setting_ip4_config_get_address_label (s_ip4, 2)); - g_assert_cmpstr (label, ==, NULL); - - /* Remove addr 1 and re-verify remaining addresses */ - nm_setting_ip4_config_remove_address (s_ip4, 0); - nm_setting_verify (NM_SETTING (s_ip4), NULL, &error); - g_assert_no_error (error); - - addr = nm_setting_ip4_config_get_address (s_ip4, 0); - g_assert_cmpint (nm_ip4_address_get_address (addr), ==, 0x02020202); - label = NM_UTILS_PRIVATE_CALL (nm_setting_ip4_config_get_address_label (s_ip4, 0)); - g_assert_cmpstr (label, ==, "eth0:1"); - - addr = nm_setting_ip4_config_get_address (s_ip4, 1); - g_assert_cmpint (nm_ip4_address_get_address (addr), ==, 0x03030303); - label = NM_UTILS_PRIVATE_CALL (nm_setting_ip4_config_get_address_label (s_ip4, 1)); - g_assert_cmpstr (label, ==, NULL); - - - /* Test explicit property assignment */ - g_object_get (G_OBJECT (s_ip4), - NM_SETTING_IP4_CONFIG_ADDRESSES, &addrs, - "address-labels", &labels, - NULL); - - nm_setting_ip4_config_clear_addresses (s_ip4); - g_assert_cmpint (nm_setting_ip4_config_get_num_addresses (s_ip4), ==, 0); - - /* Setting addrs but not labels will result in empty labels */ - g_object_set (G_OBJECT (s_ip4), - NM_SETTING_IP4_CONFIG_ADDRESSES, addrs, - NULL); - g_boxed_free (DBUS_TYPE_G_ARRAY_OF_ARRAY_OF_UINT, addrs); - nm_setting_verify (NM_SETTING (s_ip4), NULL, &error); - g_assert_no_error (error); - g_assert_cmpint (nm_setting_ip4_config_get_num_addresses (s_ip4), ==, 2); - - addr = nm_setting_ip4_config_get_address (s_ip4, 0); - g_assert_cmpint (nm_ip4_address_get_address (addr), ==, 0x02020202); - label = NM_UTILS_PRIVATE_CALL (nm_setting_ip4_config_get_address_label (s_ip4, 0)); - g_assert_cmpstr (label, ==, NULL); - - addr = nm_setting_ip4_config_get_address (s_ip4, 1); - g_assert_cmpint (nm_ip4_address_get_address (addr), ==, 0x03030303); - label = NM_UTILS_PRIVATE_CALL (nm_setting_ip4_config_get_address_label (s_ip4, 1)); - g_assert_cmpstr (label, ==, NULL); - - /* Setting labels now will leave addresses untouched */ - g_object_set (G_OBJECT (s_ip4), - "address-labels", labels, - NULL); - g_boxed_free (DBUS_TYPE_G_LIST_OF_STRING, labels); - nm_setting_verify (NM_SETTING (s_ip4), NULL, &error); - g_assert_no_error (error); - g_assert_cmpint (nm_setting_ip4_config_get_num_addresses (s_ip4), ==, 2); - - addr = nm_setting_ip4_config_get_address (s_ip4, 0); - g_assert_cmpint (nm_ip4_address_get_address (addr), ==, 0x02020202); - label = NM_UTILS_PRIVATE_CALL (nm_setting_ip4_config_get_address_label (s_ip4, 0)); - g_assert_cmpstr (label, ==, "eth0:1"); - - addr = nm_setting_ip4_config_get_address (s_ip4, 1); - g_assert_cmpint (nm_ip4_address_get_address (addr), ==, 0x03030303); - label = NM_UTILS_PRIVATE_CALL (nm_setting_ip4_config_get_address_label (s_ip4, 1)); - g_assert_cmpstr (label, ==, NULL); - - /* Setting labels to a value that's too short or too long will result in - * the setting not verifying. - */ - labels = g_slist_append (NULL, "eth0:2"); - g_object_set (G_OBJECT (s_ip4), - "address-labels", labels, - NULL); - - nm_setting_verify (NM_SETTING (s_ip4), NULL, &error); - g_assert_error (error, NM_SETTING_IP4_CONFIG_ERROR, NM_SETTING_IP4_CONFIG_ERROR_INVALID_PROPERTY); - g_assert (g_str_has_prefix (error->message, "ipv4.address-labels:")); - g_clear_error (&error); - - labels = g_slist_append (labels, "eth0:3"); - g_object_set (G_OBJECT (s_ip4), - "address-labels", labels, - NULL); - nm_setting_verify (NM_SETTING (s_ip4), NULL, &error); - g_assert_no_error (error); - - labels = g_slist_append (labels, "eth0:4"); - g_object_set (G_OBJECT (s_ip4), - "address-labels", labels, - NULL); - nm_setting_verify (NM_SETTING (s_ip4), NULL, &error); - g_assert_error (error, NM_SETTING_IP4_CONFIG_ERROR, NM_SETTING_IP4_CONFIG_ERROR_INVALID_PROPERTY); - g_assert (g_str_has_prefix (error->message, "ipv4.address-labels:")); - g_clear_error (&error); - - - g_object_unref (s_ip4); -} - #define OLD_DBUS_TYPE_G_IP6_ADDRESS (dbus_g_type_get_struct ("GValueArray", DBUS_TYPE_G_UCHAR_ARRAY, G_TYPE_UINT, G_TYPE_INVALID)) #define OLD_DBUS_TYPE_G_ARRAY_OF_IP6_ADDRESS (dbus_g_type_get_collection ("GPtrArray", OLD_DBUS_TYPE_G_IP6_ADDRESS)) @@ -1416,7 +1265,6 @@ test_connection_diff_a_only (void) { NM_SETTING_IP4_CONFIG_DNS, NM_SETTING_DIFF_RESULT_IN_A }, { NM_SETTING_IP4_CONFIG_DNS_SEARCH, NM_SETTING_DIFF_RESULT_IN_A }, { NM_SETTING_IP4_CONFIG_ADDRESSES, NM_SETTING_DIFF_RESULT_IN_A }, - { "address-labels", NM_SETTING_DIFF_RESULT_IN_A }, { NM_SETTING_IP4_CONFIG_ROUTES, NM_SETTING_DIFF_RESULT_IN_A }, { NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES, NM_SETTING_DIFF_RESULT_IN_A }, { NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS, NM_SETTING_DIFF_RESULT_IN_A }, @@ -2153,7 +2001,7 @@ test_setting_ip4_changed_signal (void) ASSERT_CHANGED (nm_setting_ip4_config_add_address (s_ip4, addr)); ASSERT_CHANGED (nm_setting_ip4_config_remove_address (s_ip4, 0)); - g_test_expect_message ("libnm-util", G_LOG_LEVEL_CRITICAL, "*addr != NULL && label != NULL*"); + g_test_expect_message ("libnm-util", G_LOG_LEVEL_CRITICAL, "*elt != NULL*"); ASSERT_UNCHANGED (nm_setting_ip4_config_remove_address (s_ip4, 1)); g_test_assert_expected_messages (); @@ -2609,7 +2457,6 @@ int main (int argc, char **argv) test_setting_vpn_items (); test_setting_vpn_update_secrets (); test_setting_vpn_modify_during_foreach (); - test_setting_ip4_config_labels (); test_setting_ip6_config_old_address_array (); test_setting_gsm_apn_spaces (); test_setting_gsm_apn_bad_chars ();