mirror of git://git.sysmocom.de/ofono
sms: Separate history from dbus flags in txq_submit
This commit is contained in:
parent
3436c58fac
commit
857e2d046f
|
@ -232,6 +232,7 @@ enum ofono_sms_submit_flag {
|
||||||
OFONO_SMS_SUBMIT_FLAG_REQUEST_SR = 0x1,
|
OFONO_SMS_SUBMIT_FLAG_REQUEST_SR = 0x1,
|
||||||
OFONO_SMS_SUBMIT_FLAG_RECORD_HISTORY = 0x2,
|
OFONO_SMS_SUBMIT_FLAG_RECORD_HISTORY = 0x2,
|
||||||
OFONO_SMS_SUBMIT_FLAG_RETRY = 0x4,
|
OFONO_SMS_SUBMIT_FLAG_RETRY = 0x4,
|
||||||
|
OFONO_SMS_SUBMIT_FLAG_EXPOSE_DBUS = 0x8,
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef void (*ofono_sms_txq_submit_cb_t)(gboolean ok, void *data);
|
typedef void (*ofono_sms_txq_submit_cb_t)(gboolean ok, void *data);
|
||||||
|
|
29
src/sms.c
29
src/sms.c
|
@ -788,18 +788,24 @@ next_q:
|
||||||
|
|
||||||
if (entry->flags & OFONO_SMS_SUBMIT_FLAG_RECORD_HISTORY) {
|
if (entry->flags & OFONO_SMS_SUBMIT_FLAG_RECORD_HISTORY) {
|
||||||
enum ofono_history_sms_status hs;
|
enum ofono_history_sms_status hs;
|
||||||
enum message_state ms;
|
|
||||||
|
|
||||||
if (ok) {
|
if (ok)
|
||||||
hs = OFONO_HISTORY_SMS_STATUS_SUBMITTED;
|
hs = OFONO_HISTORY_SMS_STATUS_SUBMITTED;
|
||||||
ms = MESSAGE_STATE_SENT;
|
else
|
||||||
} else {
|
|
||||||
hs = OFONO_HISTORY_SMS_STATUS_SUBMIT_FAILED;
|
hs = OFONO_HISTORY_SMS_STATUS_SUBMIT_FAILED;
|
||||||
ms = MESSAGE_STATE_FAILED;
|
|
||||||
}
|
|
||||||
|
|
||||||
__ofono_history_sms_send_status(modem, &entry->uuid,
|
__ofono_history_sms_send_status(modem, &entry->uuid,
|
||||||
time(NULL), hs);
|
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);
|
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_RECORD_HISTORY;
|
||||||
flags |= OFONO_SMS_SUBMIT_FLAG_RETRY;
|
flags |= OFONO_SMS_SUBMIT_FLAG_RETRY;
|
||||||
|
flags |= OFONO_SMS_SUBMIT_FLAG_EXPOSE_DBUS;
|
||||||
if (sms->use_delivery_reports)
|
if (sms->use_delivery_reports)
|
||||||
flags |= OFONO_SMS_SUBMIT_FLAG_REQUEST_SR;
|
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,
|
struct ofono_uuid *uuid,
|
||||||
ofono_sms_txq_queued_cb_t cb, void *data)
|
ofono_sms_txq_queued_cb_t cb, void *data)
|
||||||
{
|
{
|
||||||
|
struct message *m = NULL;
|
||||||
struct tx_queue_entry *entry;
|
struct tx_queue_entry *entry;
|
||||||
|
|
||||||
entry = tx_queue_entry_new(list, flags);
|
entry = tx_queue_entry_new(list, flags);
|
||||||
if (entry == NULL)
|
if (entry == NULL)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
if (flags & OFONO_SMS_SUBMIT_FLAG_RECORD_HISTORY) {
|
if (flags & OFONO_SMS_SUBMIT_FLAG_EXPOSE_DBUS) {
|
||||||
struct message *m;
|
|
||||||
|
|
||||||
m = message_create(&entry->uuid);
|
m = message_create(&entry->uuid);
|
||||||
if (m == NULL)
|
if (m == NULL)
|
||||||
goto err;
|
goto err;
|
||||||
|
@ -1880,8 +1886,6 @@ int __ofono_sms_txq_submit(struct ofono_sms *sms, GSList *list,
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
g_hash_table_insert(sms->messages, &m->uuid, m);
|
g_hash_table_insert(sms->messages, &m->uuid, m);
|
||||||
emit_message_added(sms, m);
|
|
||||||
|
|
||||||
m->entry = entry;
|
m->entry = entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1900,6 +1904,9 @@ int __ofono_sms_txq_submit(struct ofono_sms *sms, GSList *list,
|
||||||
if (uuid)
|
if (uuid)
|
||||||
memcpy(uuid, &entry->uuid, sizeof(*uuid));
|
memcpy(uuid, &entry->uuid, sizeof(*uuid));
|
||||||
|
|
||||||
|
if (m && (flags & OFONO_SMS_SUBMIT_FLAG_EXPOSE_DBUS))
|
||||||
|
emit_message_added(sms, m);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
err:
|
err:
|
||||||
|
|
Loading…
Reference in New Issue