GPRS_CONTEXT_TYPE_INTERNET = 0,
GPRS_CONTEXT_TYPE_MMS,
GPRS_CONTEXT_TYPE_WAP,
+ GPRS_CONTEXT_TYPE_INVALID,
};
struct ofono_gprs {
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:
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)
{
{
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)