diff options
author | Aki Niemi <aki.niemi@nokia.com> | 2010-09-03 13:12:38 +0300 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-09-03 09:10:09 -0500 |
commit | 35cfb432d45dc37cc8bfcc00de8492db6a3ec328 (patch) | |
tree | 1dead19952b9bb3392a366485e10185944de3d57 /src | |
parent | 414b22391cacd0f0d4cf0fdd8d897d528470cb63 (diff) | |
download | ofono-35cfb432d45dc37cc8bfcc00de8492db6a3ec328.tar.bz2 |
Fix adding 8bit reference number
Diffstat (limited to 'src')
-rw-r--r-- | src/sms.c | 17 |
1 files changed, 11 insertions, 6 deletions
@@ -522,7 +522,7 @@ static gboolean tx_next(gpointer user_data) } static void set_ref_and_to(GSList *msg_list, guint16 ref, int offset, - const char *to) + gboolean use_16bit, const char *to) { GSList *l; struct sms *sms; @@ -530,12 +530,17 @@ static void set_ref_and_to(GSList *msg_list, guint16 ref, int offset, for (l = msg_list; l; l = l->next) { sms = l->data; - if (offset != 0) { + sms_address_from_string(&sms->submit.daddr, to); + + if (offset == 0) + continue; + + if (use_16bit) { sms->submit.ud[offset] = (ref & 0xf0) >> 8; - sms->submit.ud[offset+1] = (ref & 0x0f); + sms->submit.ud[offset+1] = ref & 0x0f; + } else { + sms->submit.ud[offset] = ref & 0x0f; } - - sms_address_from_string(&sms->submit.daddr, to); } } @@ -621,7 +626,7 @@ static DBusMessage *sms_send_message(DBusConnection *conn, DBusMessage *msg, if (!msg_list) return __ofono_error_invalid_format(msg); - set_ref_and_to(msg_list, sms->ref, ref_offset, to); + set_ref_and_to(msg_list, sms->ref, ref_offset, TRUE, to); DBG("ref: %d, offset: %d", sms->ref, ref_offset); if (ref_offset != 0) { |