summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2009-11-02 11:22:35 -0600
committerDenis Kenzior <denkenz@gmail.com>2009-11-02 16:02:09 -0600
commit1f73c182579d6e4bcdef80db00c2e42485d04e40 (patch)
tree8a9843cf51ae9e0863d887d0415bb76726b1b2ea /src
parentbf8e486f02b08063688aca0686147fc63c020bda (diff)
downloadofono-1f73c182579d6e4bcdef80db00c2e42485d04e40.tar.bz2
Add utility to convert strings to context type
Diffstat (limited to 'src')
-rw-r--r--src/gprs.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/gprs.c b/src/gprs.c
index def7a0c2..316e0016 100644
--- a/src/gprs.c
+++ b/src/gprs.c
@@ -46,6 +46,7 @@ enum gprs_context_type {
GPRS_CONTEXT_TYPE_INTERNET = 0,
GPRS_CONTEXT_TYPE_MMS,
GPRS_CONTEXT_TYPE_WAP,
+ GPRS_CONTEXT_TYPE_INVALID,
};
struct ofono_gprs {
@@ -93,7 +94,7 @@ struct pri_context {
static void gprs_netreg_update(struct ofono_gprs *gprs);
-static inline const char *gprs_context_type_to_string(int type)
+static const char *gprs_context_type_to_string(int type)
{
switch (type) {
case GPRS_CONTEXT_TYPE_INTERNET:
@@ -107,6 +108,18 @@ static inline const char *gprs_context_type_to_string(int type)
return NULL;
}
+static enum gprs_context_type gprs_context_string_to_type(const char *str)
+{
+ if (g_str_equal(str, "internet"))
+ return GPRS_CONTEXT_TYPE_INTERNET;
+ else if (g_str_equal(str, "wap"))
+ return GPRS_CONTEXT_TYPE_WAP;
+ else if (g_str_equal(str, "mms"))
+ return GPRS_CONTEXT_TYPE_MMS;
+
+ return GPRS_CONTEXT_TYPE_INVALID;
+}
+
static struct pri_context *gprs_context_by_path(struct ofono_gprs *gprs,
const char *ctx_path)
{
@@ -272,13 +285,9 @@ static DBusMessage *pri_set_type(struct pri_context *ctx, DBusConnection *conn,
{
enum gprs_context_type context_type;
- if (g_str_equal(type, "internet"))
- context_type = GPRS_CONTEXT_TYPE_INTERNET;
- else if (g_str_equal(type, "wap"))
- context_type = GPRS_CONTEXT_TYPE_WAP;
- else if (g_str_equal(type, "mms"))
- context_type = GPRS_CONTEXT_TYPE_MMS;
- else
+ context_type = gprs_context_string_to_type(type);
+
+ if (context_type == GPRS_CONTEXT_TYPE_INVALID)
return __ofono_error_invalid_args(msg);
if (ctx->type == context_type)