diff options
author | Dan Williams <dan@ioncontrol.co> | 2025-04-17 20:31:53 -0500 |
---|---|---|
committer | Dan Williams <dan@ioncontrol.co> | 2025-05-08 20:25:22 -0500 |
commit | 1d5cc0addb6576d007183454c0702d8ee3ab586f (patch) | |
tree | 63d214f48abebcd33bf3f0f17ddcf8fa28cae3c5 /src/mm-broadband-modem-qmi.c | |
parent | 51ff44f1f5fc54470596ee538855e1ca42ee43b8 (diff) |
broadband-modem-qmi,broadband-modem-mbim: always use SMS_PART_INVALID_INDEX unstored parts
MMSmsList has logic to allow multiple unstored messages as long as
they use SMS_PART_INVALID_INDEX. These messages aren't stored so
they don't have an index.
But the MBIM and QMI modems used index 0 for unstored messages,
meaning there could only ever be one and also that multipart
messages would fail to be combined.
Let's fix that by just using SMS_PART_INVALID_INDEX for every
scenario where an unstored message comes in.
Fixes: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/979
Signed-off-by: Dan Williams <dan@ioncontrol.co>
Diffstat (limited to 'src/mm-broadband-modem-qmi.c')
-rw-r--r-- | src/mm-broadband-modem-qmi.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/mm-broadband-modem-qmi.c b/src/mm-broadband-modem-qmi.c index 4f153009..6d5b8b20 100644 --- a/src/mm-broadband-modem-qmi.c +++ b/src/mm-broadband-modem-qmi.c @@ -8414,7 +8414,6 @@ messaging_event_report_indication_cb (QmiClientNas *client, QmiWmsAckIndicator ack_ind; guint32 transaction_id; QmiWmsMessageFormat msg_format; - QmiWmsMessageTagType tag; GArray *raw_data = NULL; /* Handle transfer-route MT messages */ @@ -8459,13 +8458,10 @@ messaging_event_report_indication_cb (QmiClientNas *client, } /* Defaults for transfer-route messages, which are not stored anywhere */ - storage = QMI_WMS_STORAGE_TYPE_NONE; - memory_index = 0; - tag = QMI_WMS_MESSAGE_TAG_TYPE_MT_NOT_READ; add_new_read_sms_part (MM_IFACE_MODEM_MESSAGING (self), - storage, - memory_index, - tag, + QMI_WMS_STORAGE_TYPE_NONE, + SMS_PART_INVALID_INDEX, + QMI_WMS_MESSAGE_TAG_TYPE_MT_NOT_READ, msg_format, TRUE, raw_data); |