sms: Fix sms send for qmi modems not returning TP-MR

Gobi 2000 doesn't provide the QMI_WMS_RESULT_MESSAGE_ID field. As a
result, delivery is resolved as failed and it tries to retransmit it
again and again. From user point of view, a message is sent but the
message is received 4 times.

ofonod[6370]: drivers/qmimodem/qmibridge.c:ask_qmi() READ: QMI QMUX:
QMI   length  = 19
QMI   flags   = 0x80
QMI   service = "wms"
QMI   client  = 1
QMI QMI:
QMI   flags       = "response"
QMI   transaction = 293
QMI   tlv_length  = 7
QMI   message     = "Raw Send" (0x0020)
QMI TLV:
QMI   type       = "Result" (0x02)
QMI   length     = 4
QMI   value      = 00:00:00:00
QMI   translated = SUCCESS
This commit is contained in:
Pau Espin 2017-08-29 16:03:44 +02:00
parent b5ad34faab
commit 58f9395711
2 changed files with 3 additions and 2 deletions

View File

@ -171,7 +171,8 @@ static void raw_send_cb(struct qmi_result *result, void *user_data)
}
if (!qmi_result_get_uint16(result, QMI_WMS_RESULT_MESSAGE_ID, &msgid)) {
CALLBACK_WITH_FAILURE(cb, -1, cbd->data);
DBG("TP-MR field missing");
CALLBACK_WITH_SUCCESS(cb, -1, cbd->data);
return;
}

View File

@ -720,7 +720,7 @@ static void tx_finished(const struct ofono_error *error, int mr, void *data)
entry->cur_pdu += 1;
entry->retry = 0;
if (entry->flags & OFONO_SMS_SUBMIT_FLAG_REQUEST_SR)
if (entry->flags & OFONO_SMS_SUBMIT_FLAG_REQUEST_SR && mr >= 0)
status_report_assembly_add_fragment(sms->sr_assembly,
entry->uuid.uuid,
&entry->receiver,