From 3dc965a2cbab0131a88e2ca60410f546c5ebe28c Mon Sep 17 00:00:00 2001 From: Thomas Bechtold Date: Thu, 2 Feb 2012 09:39:32 +0100 Subject: [PATCH] libnm-util: allow empty number for gsm settings The documentation said they were allowed, and that's clearly the correct behavior. --- libnm-util/nm-setting-gsm.c | 8 +------- libnm-util/tests/test-general.c | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/libnm-util/nm-setting-gsm.c b/libnm-util/nm-setting-gsm.c index 80d3fd313c..c23e8b0114 100644 --- a/libnm-util/nm-setting-gsm.c +++ b/libnm-util/nm-setting-gsm.c @@ -292,13 +292,7 @@ verify (NMSetting *setting, GSList *all_settings, GError **error) { NMSettingGsmPrivate *priv = NM_SETTING_GSM_GET_PRIVATE (setting); - if (!priv->number) { - g_set_error (error, - NM_SETTING_GSM_ERROR, - NM_SETTING_GSM_ERROR_MISSING_PROPERTY, - NM_SETTING_GSM_NUMBER); - return FALSE; - } else if (!strlen (priv->number)) { + if (priv->number && !priv->number[0]) { g_set_error (error, NM_SETTING_GSM_ERROR, NM_SETTING_GSM_ERROR_INVALID_PROPERTY, diff --git a/libnm-util/tests/test-general.c b/libnm-util/tests/test-general.c index c4c696f260..1eed888789 100644 --- a/libnm-util/tests/test-general.c +++ b/libnm-util/tests/test-general.c @@ -444,6 +444,26 @@ test_setting_gsm_apn_underscore (void) g_assert (success == TRUE); } +static void +test_setting_gsm_without_number (void) +{ + NMSettingGsm *s_gsm; + GError *error = NULL; + gboolean success; + + s_gsm = (NMSettingGsm *) nm_setting_gsm_new (); + g_assert (s_gsm); + + g_object_set (s_gsm, NM_SETTING_GSM_NUMBER, NULL, NULL); + success = nm_setting_verify (NM_SETTING (s_gsm), NULL, &error); + g_assert_no_error (error); + g_assert (success == TRUE); + + g_object_set (s_gsm, NM_SETTING_GSM_NUMBER, "", NULL); + success = nm_setting_verify (NM_SETTING (s_gsm), NULL, &error); + g_assert_error (error, NM_SETTING_GSM_ERROR, NM_SETTING_GSM_ERROR_INVALID_PROPERTY); +} + static NMSettingWirelessSecurity * make_test_wsec_setting (const char *detail) { @@ -1359,6 +1379,7 @@ int main (int argc, char **argv) test_setting_gsm_apn_spaces (); test_setting_gsm_apn_bad_chars (); test_setting_gsm_apn_underscore (); + test_setting_gsm_without_number (); test_setting_to_hash_all (); test_setting_to_hash_no_secrets (); test_setting_to_hash_only_secrets ();