diff options
author | Yang Gu <yang.gu@intel.com> | 2010-04-02 14:20:31 +0800 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-04-02 10:58:53 -0500 |
commit | 8bc04ba93a067222316cddb23bf68b5b206a37e0 (patch) | |
tree | 7f710a19cad6904df5245265390da60b11bddd28 /src | |
parent | 8bad7e540a8fe86814b391f177a71b9eb2e44b0e (diff) | |
download | ofono-8bc04ba93a067222316cddb23bf68b5b206a37e0.tar.bz2 |
Refactor: Break out semi-octet decoder
Refactor decode_scts to use this function
Diffstat (limited to 'src')
-rw-r--r-- | src/smsutil.c | 17 | ||||
-rw-r--r-- | src/smsutil.h | 2 |
2 files changed, 13 insertions, 6 deletions
diff --git a/src/smsutil.c b/src/smsutil.c index baa7ebe6..64cd6fbc 100644 --- a/src/smsutil.c +++ b/src/smsutil.c @@ -372,6 +372,11 @@ static gboolean encode_scts(const struct sms_scts *in, unsigned char *pdu, return TRUE; } +guint8 sms_decode_semi_octet(guint8 in) +{ + return (in & 0x0f) * 10 + (in >> 4); +} + static gboolean decode_scts(const unsigned char *pdu, int len, int *offset, struct sms_scts *out) { @@ -381,22 +386,22 @@ static gboolean decode_scts(const unsigned char *pdu, int len, return FALSE; next_octet(pdu, len, offset, &oct); - out->year = (oct & 0x0f) * 10 + ((oct & 0xf0) >> 4); + out->year = sms_decode_semi_octet(oct); next_octet(pdu, len, offset, &oct); - out->month = (oct & 0x0f) * 10 + ((oct & 0xf0) >> 4); + out->month = sms_decode_semi_octet(oct); next_octet(pdu, len, offset, &oct); - out->day = (oct & 0x0f) * 10 + ((oct & 0xf0) >> 4); + out->day = sms_decode_semi_octet(oct); next_octet(pdu, len, offset, &oct); - out->hour = (oct & 0x0f) * 10 + ((oct & 0xf0) >> 4); + out->hour = sms_decode_semi_octet(oct); next_octet(pdu, len, offset, &oct); - out->minute = (oct & 0x0f) * 10 + ((oct & 0xf0) >> 4); + out->minute = sms_decode_semi_octet(oct); next_octet(pdu, len, offset, &oct); - out->second = (oct & 0x0f) * 10 + ((oct & 0xf0) >> 4); + out->second = sms_decode_semi_octet(oct); next_octet(pdu, len, offset, &oct); diff --git a/src/smsutil.h b/src/smsutil.h index c28a6daf..fd80c8fc 100644 --- a/src/smsutil.h +++ b/src/smsutil.h @@ -422,6 +422,8 @@ gboolean sms_decode_address_field(const unsigned char *pdu, int len, gboolean sms_encode_address_field(const struct sms_address *in, gboolean sc, unsigned char *pdu, int *offset); +guint8 sms_decode_semi_octet(guint8 in); + int sms_udl_in_bytes(guint8 ud_len, guint8 dcs); time_t sms_scts_to_time(const struct sms_scts *scts, struct tm *remote); |