summaryrefslogtreecommitdiffstats
path: root/src/common.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/common.c')
-rw-r--r--src/common.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/common.c b/src/common.c
index 5154b8d8..168964e1 100644
--- a/src/common.c
+++ b/src/common.c
@@ -262,6 +262,30 @@ gboolean valid_phone_number_format(const char *number)
return TRUE;
}
+gboolean valid_cdma_phone_number_format(const char *number)
+{
+ int len = strlen(number);
+ int i;
+
+ if (!len)
+ return FALSE;
+
+ if (len > OFONO_CDMA_MAX_PHONE_NUMBER_LENGTH)
+ return FALSE;
+
+ for (i = 0; i < len; i++) {
+ if (number[i] >= '0' && number[i] <= '9')
+ continue;
+
+ if (number[i] == '*' || number[i] == '#')
+ continue;
+
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
const char *telephony_error_to_str(const struct ofono_error *error)
{
struct error_entry *e;
@@ -405,6 +429,23 @@ void string_to_phone_number(const char *str, struct ofono_phone_number *ph)
}
}
+const char *cdma_phone_number_to_string(
+ const struct ofono_cdma_phone_number *ph)
+{
+ static char buffer[OFONO_CDMA_MAX_PHONE_NUMBER_LENGTH + 1];
+
+ strncpy(buffer, ph->number, OFONO_CDMA_MAX_PHONE_NUMBER_LENGTH);
+ buffer[OFONO_CDMA_MAX_PHONE_NUMBER_LENGTH] = '\0';
+
+ return buffer;
+}
+
+void string_to_cdma_phone_number(const char *str,
+ struct ofono_cdma_phone_number *ph)
+{
+ strcpy(ph->number, str);
+}
+
gboolean valid_ussd_string(const char *str, gboolean call_in_progress)
{
int len = strlen(str);