summaryrefslogtreecommitdiffstats
path: root/src/sms.c
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2011-02-04 12:36:14 -0600
committerDenis Kenzior <denkenz@gmail.com>2011-02-06 23:47:17 -0600
commit9086328508849f4f4a148f85aecf2d891d40315f (patch)
tree32a192d72d4fa2f0eb6705d684cb7bc3f245c3f9 /src/sms.c
parent40926f1951c9c2a71ac44230725f4442ae7af71f (diff)
downloadofono-9086328508849f4f4a148f85aecf2d891d40315f.tar.bz2
sms: Use a better pattern for bearer_from_string
Diffstat (limited to 'src/sms.c')
-rw-r--r--src/sms.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/sms.c b/src/sms.c
index bb94b3d0..8e3b0570 100644
--- a/src/sms.c
+++ b/src/sms.c
@@ -144,18 +144,20 @@ static const char *sms_bearer_to_string(int bearer)
return "unknown";
}
-static int sms_bearer_from_string(const char *str)
+static gboolean sms_bearer_from_string(const char *str, int *bearer)
{
if (g_str_equal(str, "ps-only"))
- return 0;
+ *bearer = 0;
else if (g_str_equal(str, "cs-only"))
- return 1;
+ *bearer = 1;
else if (g_str_equal(str, "ps-preferred"))
- return 2;
+ *bearer = 2;
else if (g_str_equal(str, "cs-preferred"))
- return 3;
+ *bearer = 3;
+ else
+ return FALSE;
- return -1;
+ return TRUE;
}
static const char *sms_alphabet_to_string(enum sms_alphabet alphabet)
@@ -535,8 +537,7 @@ static DBusMessage *sms_set_property(DBusConnection *conn, DBusMessage *msg,
dbus_message_iter_get_basic(&var, &value);
- bearer = sms_bearer_from_string(value);
- if (bearer < 0)
+ if (sms_bearer_from_string(value, &bearer) != TRUE)
return __ofono_error_invalid_format(msg);
if (sms->driver->bearer_set == NULL ||