Add utility to test for valid APN names
authorDenis Kenzior <denkenz@gmail.com>
Fri, 30 Oct 2009 20:52:29 +0000 (15:52 -0500)
committerDenis Kenzior <denkenz@gmail.com>
Fri, 30 Oct 2009 20:52:29 +0000 (15:52 -0500)
src/common.c
src/common.h

index cb79334..500a8c1 100644 (file)
@@ -641,3 +641,29 @@ const char *registration_tech_to_string(int tech)
                return "";
        }
 }
+
+gboolean is_valid_apn(const char *apn)
+{
+       int i;
+       int last_period = 0;
+
+       if (apn[0] == '.' || apn[0] == '\0')
+               return FALSE;
+
+       for (i = 0; apn[i] != '\0'; i++) {
+               if (g_ascii_isalnum(apn[i]))
+                       continue;
+
+               if (apn[i] == '-')
+                       continue;
+
+               if (apn[i] == '.' && (i - last_period) > 1) {
+                       last_period = i;
+                       continue;
+               }
+
+               return FALSE;
+       }
+
+       return TRUE;
+}
index 1a5c9ed..f60b592 100644 (file)
@@ -138,3 +138,5 @@ gboolean is_valid_pin(const char *pin);
 
 const char *registration_status_to_string(int status);
 const char *registration_tech_to_string(int tech);
+
+gboolean is_valid_apn(const char *apn);