From: Denis Kenzior Date: Mon, 2 Nov 2009 17:22:35 +0000 (-0600) Subject: Add utility to convert strings to context type X-Git-Tag: 0.10~60 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1f73c182579d6e4bcdef80db00c2e42485d04e40;p=platform%2Fupstream%2Fofono.git Add utility to convert strings to context type --- diff --git a/src/gprs.c b/src/gprs.c index def7a0c..316e001 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)