aboutsummaryrefslogtreecommitdiff
path: root/src/mm-base-sms.c
diff options
context:
space:
mode:
authorKyle Evans <kvans32@gmail.com>2024-07-11 16:20:21 -0400
committerAleksander Morgado <aleksander@aleksander.es>2024-09-09 08:48:37 +0000
commitae88eeed4939d114e27581da03c48ac9acb08ee1 (patch)
tree3c8357bc6ff6caa11386936860a76ce1dd931fbe /src/mm-base-sms.c
parentd763b9467764be438c5cfab3416ea5bf184da248 (diff)
mm-base-sms: cmp by reference & number
Messages from different senders can have the same reference. Stale messages from the same sender can also conflict. Consider the number of the sender and also the max parts when assigning parts to a base sms. Ref 3gpp specification section 9.2.3.24.1 Fixes #757 Signed-off-by: Kyle Evans <kvans32@gmail.com>
Diffstat (limited to 'src/mm-base-sms.c')
-rw-r--r--src/mm-base-sms.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mm-base-sms.c b/src/mm-base-sms.c
index dfe6c06f..153a6c44 100644
--- a/src/mm-base-sms.c
+++ b/src/mm-base-sms.c
@@ -739,6 +739,12 @@ mm_base_sms_is_multipart (MMBaseSms *self)
}
guint
+mm_base_sms_get_max_parts (MMBaseSms *self)
+{
+ return self->priv->max_parts;
+}
+
+guint
mm_base_sms_get_multipart_reference (MMBaseSms *self)
{
g_return_val_if_fail (self->priv->is_multipart, 0);
@@ -1858,6 +1864,7 @@ mm_base_sms_multipart_new (MMBaseModem *modem,
MM_BASE_SMS_IS_MULTIPART, TRUE,
MM_BASE_SMS_MAX_PARTS, max_parts,
MM_BASE_SMS_MULTIPART_REFERENCE, reference,
+ "number", mm_sms_part_get_number (first_part),
"state", state,
"storage", storage,
"validity", g_variant_new ("(uv)",