summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/sms.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/sms.c b/src/sms.c
index 743f725e..e7e44321 100644
--- a/src/sms.c
+++ b/src/sms.c
@@ -2115,14 +2115,16 @@ int __ofono_sms_txq_set_submit_notify(struct ofono_sms *sms,
ofono_destroy_func destroy)
{
GList *l;
- struct tx_queue_entry *entry;
+ struct tx_queue_entry *entry = g_queue_peek_tail(sms->txq);
- l = g_queue_find_custom(sms->txq, uuid, entry_compare_by_uuid);
+ if (memcmp(&entry->uuid, uuid, sizeof(entry->uuid))) {
+ l = g_queue_find_custom(sms->txq, uuid, entry_compare_by_uuid);
- if (l == NULL)
- return -ENOENT;
+ if (l == NULL)
+ return -ENOENT;
- entry = l->data;
+ entry = l->data;
+ }
tx_queue_entry_set_submit_notify(entry, cb, data, destroy);