diff options
author | Denis Kenzior <denkenz@gmail.com> | 2009-11-02 11:22:35 -0600 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2009-11-02 16:02:09 -0600 |
commit | 1f73c182579d6e4bcdef80db00c2e42485d04e40 (patch) | |
tree | 8a9843cf51ae9e0863d887d0415bb76726b1b2ea /src | |
parent | bf8e486f02b08063688aca0686147fc63c020bda (diff) | |
download | ofono-1f73c182579d6e4bcdef80db00c2e42485d04e40.tar.bz2 |
Add utility to convert strings to context type
Diffstat (limited to 'src')
-rw-r--r-- | src/gprs.c | 25 |
1 files changed, 17 insertions, 8 deletions
@@ -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) |