Some modems, depending on their state and connection quality can take longer than 15 seconds to answer mbim message requests.
This commit adds the -T option, allowing the user to specifiy a custom message timeout in seconds. Default is still 15. Signed-off-by: Daniel Danzberger <[email protected]> --- cli.c | 9 +++++++-- mbim-dev.c | 2 +- mbim.h | 1 + 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/cli.c b/cli.c index 3a845d4..b23fc6d 100644 --- a/cli.c +++ b/cli.c @@ -35,6 +35,7 @@ int return_code = -1; int verbose; +int msg_timeout_ms = 15 * 1000; struct mbim_handler *current_handler; static uint8_t uuid_context_type_internet[16] = { 0x7E, 0x5E, 0x2A, 0x7E, 0x4E, 0x6F, 0x72, 0x72, 0x73, 0x6B, 0x65, 0x6E, 0x7E, 0x5E, 0x2A, 0x7E }; @@ -533,7 +534,8 @@ usage(void) #endif " -d <device> the device (/dev/cdc-wdmX)\n" " -t <transaction> the transaction id\n" - " -n no close\n\n" + " -n no close\n" + " -T MBIM message timeout in seconds [15]\n\n" " -v verbose\n\n"); return 1; } @@ -548,7 +550,7 @@ main(int argc, char **argv) int proxy = 0; #endif - while ((ch = getopt(argc, argv, "pnvd:t:")) != -1) { + while ((ch = getopt(argc, argv, "pnvd:t:T:")) != -1) { switch (ch) { case 'v': verbose = 1; @@ -563,6 +565,9 @@ main(int argc, char **argv) no_open = 1; transaction_id = atoi(optarg); break; + case 'T': + msg_timeout_ms = atoi(optarg) * 1000; + break; #ifdef LIBQMI_MBIM_PROXY case 'p': proxy = 1; diff --git a/mbim-dev.c b/mbim-dev.c index 2a94d49..12d1189 100644 --- a/mbim-dev.c +++ b/mbim-dev.c @@ -78,7 +78,7 @@ mbim_send(void) perror("writing data failed: "); } else { expected = le32toh(hdr->type) | 0x80000000; - uloop_timeout_set(&tout, 15000); + uloop_timeout_set(&tout, msg_timeout_ms); } return ret; } diff --git a/mbim.h b/mbim.h index 746257e..28999b5 100644 --- a/mbim.h +++ b/mbim.h @@ -20,6 +20,7 @@ extern int return_code; extern int verbose; +extern int msg_timeout_ms; #include "mbim-type.h" #include "mbim-enum.h" -- 2.40.1 _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
