diff --git a/application/sms-tool_q/patches/send_raw_pdu.patch b/application/sms-tool_q/patches/0001-send_raw_pdu.patch similarity index 100% rename from application/sms-tool_q/patches/send_raw_pdu.patch rename to application/sms-tool_q/patches/0001-send_raw_pdu.patch diff --git a/application/sms-tool_q/patches/0002-add_timeout_option.patch b/application/sms-tool_q/patches/0002-add_timeout_option.patch new file mode 100644 index 0000000..a89d5be --- /dev/null +++ b/application/sms-tool_q/patches/0002-add_timeout_option.patch @@ -0,0 +1,60 @@ +--- a/sms_main.c 2024-10-08 23:11:01.169908895 +0800 ++++ b/sms_main.c 2024-10-08 23:10:52.929909691 +0800 +@@ -46,7 +46,8 @@ + static const char* dev = "/dev/ttyUSB0"; + static const char* storage = ""; + static const char* dateformat = "%D %T"; +- ++FILE* pf; ++FILE* pfi; + static void setserial(int baudrate) + { + struct termios t; +@@ -115,7 +116,9 @@ + static void timeout() + { + fprintf(stderr,"No response from modem.\n"); +- exit(2); ++ if (pf) fclose(pf); ++ if (pfi) fclose(pfi); ++ exit(2); + } + + static int starts_with(const char* prefix, const char* str) +@@ -168,12 +171,14 @@ + int rawoutput = 0; + int jsonoutput = 0; + int debug = 0; ++ int user_set_timeout = 5; + int dcs = -1; + +- while ((ch = getopt(argc, argv, "b:c:d:Ds:f:jRr")) != -1){ ++ while ((ch = getopt(argc, argv, "b:c:t:d:Ds:f:jRr")) != -1){ + switch (ch) { + case 'b': baudrate = atoi(optarg); break; + case 'c': dcs = atoi(optarg); break; ++ case 't': user_set_timeout = atoi(optarg);break; + case 'd': dev = optarg; break; + case 'D': debug = 1; break; + case 's': storage = optarg; break; +@@ -237,8 +242,8 @@ + if (port < 0) + fprintf(stderr,"reopen(%s)\n", dev); + +- FILE* pf = fdopen(port, "w"); +- FILE* pfi = fdopen(port, "r"); ++ pf = fdopen(port, "w"); ++ pfi = fdopen(port, "r"); + if (!pf || ! pfi) + fprintf(stderr,"open port failed\n"); + if(setvbuf(pf, NULL, _IOLBF, 0)) +@@ -758,7 +763,8 @@ + + if (!strcmp("at", argv[0])) + { +- alarm(5); ++ ++ alarm(user_set_timeout); + fputs(argv[1], pf); + fputs("\r\n", pf); +