summaryrefslogtreecommitdiffstats
path: root/src/sms.c
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2010-11-04 10:21:34 -0500
committerDenis Kenzior <denkenz@gmail.com>2010-11-04 10:25:42 -0500
commit857e2d046ffed6f0f3965d182b0f5805203d1439 (patch)
treea53e7ff262e7f9ad723a1152c0f5348088280587 /src/sms.c
parent3436c58fac7369fa34cb403b2ae86f4c334565b8 (diff)
downloadofono-857e2d046ffed6f0f3965d182b0f5805203d1439.tar.bz2
sms: Separate history from dbus flags in txq_submit
Diffstat (limited to 'src/sms.c')
-rw-r--r--src/sms.c29
1 files changed, 18 insertions, 11 deletions
diff --git a/src/sms.c b/src/sms.c
index 063adec6..acd0f1e3 100644
--- a/src/sms.c
+++ b/src/sms.c
@@ -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: