NetworkManager r4118 - in trunk: . libnm-util



Author: dcbw
Date: Sun Sep 28 03:17:09 2008
New Revision: 4118
URL: http://svn.gnome.org/viewvc/NetworkManager?rev=4118&view=rev

Log:
2008-09-27  Dan Williams  <dcbw redhat com>

	* libnm-util/nm-setting-gsm.c
		- (verify): verify GSM network ID



Modified:
   trunk/ChangeLog
   trunk/libnm-util/nm-setting-gsm.c

Modified: trunk/libnm-util/nm-setting-gsm.c
==============================================================================
--- trunk/libnm-util/nm-setting-gsm.c	(original)
+++ trunk/libnm-util/nm-setting-gsm.c	Sun Sep 28 03:17:09 2008
@@ -24,6 +24,7 @@
  */
 
 #include <string.h>
+#include <ctype.h>
 #include "nm-setting-gsm.h"
 #include "nm-setting-serial.h"
 #include "nm-utils.h"
@@ -149,6 +150,30 @@
 		return FALSE;
 	}
 
+	if (self->network_id) {
+		guint32 nid_len = strlen (self->network_id);
+		guint32 i;
+
+		/* Accept both 5 and 6 digit MCC/MNC codes */
+		if ((nid_len < 5) || (nid_len > 6)) {
+			g_set_error (error,
+			             NM_SETTING_GSM_ERROR,
+			             NM_SETTING_GSM_ERROR_INVALID_PROPERTY,
+			             NM_SETTING_GSM_NETWORK_ID);
+			return FALSE;
+		}
+
+		for (i = 0; i < nid_len; i++) {
+			if (!isdigit (self->network_id[i])) {
+				g_set_error (error,
+				             NM_SETTING_GSM_ERROR,
+				             NM_SETTING_GSM_ERROR_INVALID_PROPERTY,
+				             NM_SETTING_GSM_NETWORK_ID);
+				return FALSE;
+			}
+		}
+	}
+
 	return TRUE;
 }
 
@@ -328,7 +353,7 @@
 		(object_class, PROP_NETWORK_ID,
 		 g_param_spec_string (NM_SETTING_GSM_NETWORK_ID,
 						  "Network ID",
-						  "Network ID",
+						  "Network ID (GSM LAI format)",
 						  NULL,
 						  G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE));
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]