diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2021-03-04 18:32:56 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2021-03-04 20:45:00 +0000 |
commit | 55d60f3c1201a4eb80f82da9d2abcf503a7de3f0 (patch) | |
tree | 4ab2b8dd7a231981cb77460d64d0f31662825998 | |
parent | 5d176a1e61df603b74434dce9050f7a9d3139f13 (diff) |
sms: common timeout of 180s for the send operation
On low signal quality conditions, the process of sending the SMS to
the network may take a really long time, way more than the 30s used as
default in some implementations.
We now define a common timeout value of 180s for this operation in all
protocols.
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/328
-rw-r--r-- | src/mm-base-sms.c | 8 | ||||
-rw-r--r-- | src/mm-base-sms.h | 8 | ||||
-rw-r--r-- | src/mm-sms-mbim.c | 2 | ||||
-rw-r--r-- | src/mm-sms-qmi.c | 4 |
4 files changed, 16 insertions, 6 deletions
diff --git a/src/mm-base-sms.c b/src/mm-base-sms.c index ad6bba26..1c291daf 100644 --- a/src/mm-base-sms.c +++ b/src/mm-base-sms.c @@ -1145,7 +1145,7 @@ send_generic_ready (MMBaseModem *modem, * sent right away (not queued after other AT commands). */ mm_base_modem_at_command_raw (ctx->modem, ctx->msg_data, - 60, + MM_BASE_SMS_DEFAULT_SEND_TIMEOUT, FALSE, (GAsyncReadyCallback)send_generic_msg_data_ready, task); @@ -1219,7 +1219,7 @@ sms_send_next_part (GTask *task) mm_sms_part_get_index ((MMSmsPart *)ctx->current->data)); mm_base_modem_at_command (ctx->modem, cmd, - 60, + MM_BASE_SMS_DEFAULT_SEND_TIMEOUT, FALSE, (GAsyncReadyCallback)send_from_storage_ready, task); @@ -1245,9 +1245,11 @@ sms_send_next_part (GTask *task) g_assert (cmd != NULL); g_assert (ctx->msg_data != NULL); + + /* no network involved in this initial AT command, so lower timeout */ mm_base_modem_at_command (ctx->modem, cmd, - 60, + 10, FALSE, (GAsyncReadyCallback)send_generic_ready, task); diff --git a/src/mm-base-sms.h b/src/mm-base-sms.h index b771b90b..e022ec3f 100644 --- a/src/mm-base-sms.h +++ b/src/mm-base-sms.h @@ -27,6 +27,14 @@ #include "mm-sms-part.h" #include "mm-base-modem.h" +/*****************************************************************************/ + +/* Default timeout value to be used when sending a SMS, long enough so that the + * operation succeeds or fails under low signal conditions. */ +#define MM_BASE_SMS_DEFAULT_SEND_TIMEOUT 180 + +/*****************************************************************************/ + #define MM_TYPE_BASE_SMS (mm_base_sms_get_type ()) #define MM_BASE_SMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_BASE_SMS, MMBaseSms)) #define MM_BASE_SMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MM_TYPE_BASE_SMS, MMBaseSmsClass)) diff --git a/src/mm-sms-mbim.c b/src/mm-sms-mbim.c index 792d37c4..acbbee44 100644 --- a/src/mm-sms-mbim.c +++ b/src/mm-sms-mbim.c @@ -175,7 +175,7 @@ sms_send_next_part (GTask *task) NULL); mbim_device_command (ctx->device, message, - 30, + MM_BASE_SMS_DEFAULT_SEND_TIMEOUT, NULL, (GAsyncReadyCallback)sms_send_set_ready, task); diff --git a/src/mm-sms-qmi.c b/src/mm-sms-qmi.c index 81c6f476..809cb26b 100644 --- a/src/mm-sms-qmi.c +++ b/src/mm-sms-qmi.c @@ -437,7 +437,7 @@ sms_send_generic (GTask *task) qmi_client_wms_raw_send (ctx->client, input, - 30, + MM_BASE_SMS_DEFAULT_SEND_TIMEOUT, NULL, (GAsyncReadyCallback)send_generic_ready, task); @@ -565,7 +565,7 @@ sms_send_from_storage (GTask *task) qmi_client_wms_send_from_memory_storage ( ctx->client, input, - 30, + MM_BASE_SMS_DEFAULT_SEND_TIMEOUT, NULL, (GAsyncReadyCallback)send_from_storage_ready, task); |