diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-11-04 10:21:34 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-11-04 10:25:42 -0500 |
commit | 857e2d046ffed6f0f3965d182b0f5805203d1439 (patch) | |
tree | a53e7ff262e7f9ad723a1152c0f5348088280587 /src/sms.c | |
parent | 3436c58fac7369fa34cb403b2ae86f4c334565b8 (diff) | |
download | ofono-857e2d046ffed6f0f3965d182b0f5805203d1439.tar.bz2 |
sms: Separate history from dbus flags in txq_submit
Diffstat (limited to 'src/sms.c')
-rw-r--r-- | src/sms.c | 29 |
1 files changed, 18 insertions, 11 deletions
@@ -788,18 +788,24 @@ next_q: if (entry->flags & OFONO_SMS_SUBMIT_FLAG_RECORD_HISTORY) { enum ofono_history_sms_status hs; - enum message_state ms; - if (ok) { + if (ok) hs = OFONO_HISTORY_SMS_STATUS_SUBMITTED; - ms = MESSAGE_STATE_SENT; - } else { + else hs = OFONO_HISTORY_SMS_STATUS_SUBMIT_FAILED; - ms = MESSAGE_STATE_FAILED; - } __ofono_history_sms_send_status(modem, &entry->uuid, time(NULL), hs); + } + + if (entry->flags & OFONO_SMS_SUBMIT_FLAG_EXPOSE_DBUS) { + enum message_state ms; + + if (ok) + ms = MESSAGE_STATE_SENT; + else + ms = MESSAGE_STATE_FAILED; + message_set_state(sms, &entry->uuid, ms); } @@ -989,6 +995,7 @@ static DBusMessage *sms_send_message(DBusConnection *conn, DBusMessage *msg, flags = OFONO_SMS_SUBMIT_FLAG_RECORD_HISTORY; flags |= OFONO_SMS_SUBMIT_FLAG_RETRY; + flags |= OFONO_SMS_SUBMIT_FLAG_EXPOSE_DBUS; if (sms->use_delivery_reports) flags |= OFONO_SMS_SUBMIT_FLAG_REQUEST_SR; @@ -1863,15 +1870,14 @@ int __ofono_sms_txq_submit(struct ofono_sms *sms, GSList *list, struct ofono_uuid *uuid, ofono_sms_txq_queued_cb_t cb, void *data) { + struct message *m = NULL; struct tx_queue_entry *entry; entry = tx_queue_entry_new(list, flags); if (entry == NULL) return -ENOMEM; - if (flags & OFONO_SMS_SUBMIT_FLAG_RECORD_HISTORY) { - struct message *m; - + if (flags & OFONO_SMS_SUBMIT_FLAG_EXPOSE_DBUS) { m = message_create(&entry->uuid); if (m == NULL) goto err; @@ -1880,8 +1886,6 @@ int __ofono_sms_txq_submit(struct ofono_sms *sms, GSList *list, goto err; g_hash_table_insert(sms->messages, &m->uuid, m); - emit_message_added(sms, m); - m->entry = entry; } @@ -1900,6 +1904,9 @@ int __ofono_sms_txq_submit(struct ofono_sms *sms, GSList *list, if (uuid) memcpy(uuid, &entry->uuid, sizeof(*uuid)); + if (m && (flags & OFONO_SMS_SUBMIT_FLAG_EXPOSE_DBUS)) + emit_message_added(sms, m); + return 0; err: |