FreeCalypso > hg > freecalypso-tools
annotate rvinterf/rvtat/main.c @ 921:74d284add54d
fc-fsio: guard against bogus readdir results from the target
If the FFS being operated on contains SE K2x0 extended filenames,
readdir will return strings that are bad for printing. We need to
guard against this possibility, and also against possible other
bogosity that could be sent by other alien firmwares.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 31 Dec 2022 22:55:23 +0000 |
parents | 261c1b6d936e |
children |
rev | line source |
---|---|
341
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 #include <sys/types.h> |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 #include <stdio.h> |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 #include <stdlib.h> |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 #include <string.h> |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 #include <strings.h> |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 #include <unistd.h> |
346
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
7 #include "pktmux.h" |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
8 #include "limits.h" |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
9 #include "localtypes.h" |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
10 #include "exitcodes.h" |
341
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 |
346
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
12 extern char *socket_pathname; |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
13 extern char *rvinterf_ttyport, *rvinterf_Bopt, *rvinterf_lopt, *rvinterf_wopt; |
341
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 |
346
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
15 extern u_char rvi_msg[]; |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
16 extern int rvi_msg_len; |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
17 |
448
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
18 char command[508], message[508]; |
341
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 int cmd_with_msg; |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 read_command_input(buf) |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 char *buf; |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 { |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 char *nl; |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 |
448
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
26 if (!fgets(buf, 508, stdin)) |
341
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 return(0); |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 nl = index(buf, '\n'); |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 if (!nl) { |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 printf("Ecommand or message is too long\n"); |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 exit(1); |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 } |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 *nl = '\0'; |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 return(1); |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 } |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 |
448
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
37 send_to_target_prefix(str) |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
38 char *str; |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
39 { |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
40 u_char sendpkt[MAX_PKT_TO_TARGET]; |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
41 |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
42 /* fill out the packet */ |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
43 sendpkt[0] = RVT_AT_HEADER; |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
44 sendpkt[1] = 0x01; |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
45 bcopy(str, sendpkt + 2, 252); |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
46 /* send it! */ |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
47 send_pkt_to_target(sendpkt, 254); |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
48 return(0); |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
49 } |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
50 |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
51 send_to_target_plain(str) |
346
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
52 char *str; |
341
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 { |
346
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
54 unsigned len; |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
55 u_char sendpkt[MAX_PKT_TO_TARGET+1]; |
345
cc207d81c05f
fcup-atinterf: implemented wakeup of sleeping targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
344
diff
changeset
|
56 |
346
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
57 len = strlen(str); |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
58 /* fill out the packet */ |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
59 sendpkt[0] = RVT_AT_HEADER; |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
60 strcpy(sendpkt + 1, str); |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
61 /* send it! */ |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
62 send_pkt_to_target(sendpkt, len + 1); |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
63 return(0); |
341
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 } |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 |
448
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
66 send_to_target(str) |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
67 char *str; |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
68 { |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
69 unsigned len; |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
70 |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
71 len = strlen(str); |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
72 if (len <= 254) |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
73 send_to_target_plain(str); |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
74 else { |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
75 send_to_target_prefix(str); |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
76 send_to_target_plain(str + 252); |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
77 } |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
78 return(0); |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
79 } |
261c1b6d936e
fcup-rvtat: added support for long strings with new fw versions
Mychaela Falconia <falcon@freecalypso.org>
parents:
423
diff
changeset
|
80 |
341
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 execute_command() |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 { |
346
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
83 send_to_target(command); |
341
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 if (cmd_with_msg) { |
346
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
85 collect_pkt_from_target(); |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
86 if (rvi_msg_len != 4 || rvi_msg[2] != '>' || rvi_msg[3] != ' '){ |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
87 printf("F%.*s\n", rvi_msg_len - 2, rvi_msg + 2); |
341
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 return; |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 } |
346
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
90 send_to_target(message); |
341
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 } |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 for (;;) { |
346
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
93 collect_pkt_from_target(); |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
94 if (rvi_msg_len == 4 && !strncmp(rvi_msg + 2, "OK", 2) || |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
95 rvi_msg_len == 7 && !strncmp(rvi_msg + 2, "ERROR", 5) || |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
96 rvi_msg_len == 6 && !strncmp(rvi_msg + 2, "BUSY", 4) || |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
97 rvi_msg_len == 12 && |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
98 !strncmp(rvi_msg + 2, "NO CARRIER", 10) || |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
99 rvi_msg_len >= 12 && |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
100 !strncmp(rvi_msg + 2, "+CME ERROR", 10) || |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
101 rvi_msg_len >= 12 && |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
102 !strncmp(rvi_msg + 2, "+CMS ERROR", 10)) { |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
103 printf("F%.*s\n", rvi_msg_len - 2, rvi_msg + 2); |
341
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 return; |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 } |
346
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
106 printf("I%.*s\n", rvi_msg_len - 2, rvi_msg + 2); |
341
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 } |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 } |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 main(argc, argv) |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 char **argv; |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 { |
346
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
113 extern int optind; |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
114 extern char *optarg; |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
115 int c, sopt = 0; |
345
cc207d81c05f
fcup-atinterf: implemented wakeup of sleeping targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
344
diff
changeset
|
116 |
346
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
117 while ((c = getopt(argc, argv, "B:l:p:s:w:")) != EOF) |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
118 switch (c) { |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
119 case 'B': |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
120 rvinterf_Bopt = optarg; |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
121 continue; |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
122 case 'l': |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
123 rvinterf_lopt = optarg; |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
124 continue; |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
125 case 'p': |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
126 rvinterf_ttyport = optarg; |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
127 continue; |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
128 case 's': |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
129 socket_pathname = optarg; |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
130 sopt++; |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
131 continue; |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
132 case 'w': |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
133 rvinterf_wopt = optarg; |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
134 continue; |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
135 case '?': |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
136 default: |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
137 /* error msg already printed */ |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
138 exit(ERROR_USAGE); |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
139 } |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
140 if (rvinterf_ttyport) { |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
141 if (sopt) { |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
142 fprintf(stderr, |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
143 "%s error: -p and -s options are mutually exclusive\n", |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
144 argv[0]); |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
145 exit(ERROR_USAGE); |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
146 } |
423
e40bb5a6c6b9
rvinterf clients: implemented 30 ms delay for batch ops with -p
Mychaela Falconia <falcon@freecalypso.org>
parents:
346
diff
changeset
|
147 launch_rvinterf(1); |
346
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
148 } else { |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
149 if (rvinterf_Bopt || rvinterf_lopt || rvinterf_wopt) { |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
150 fprintf(stderr, |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
151 "%s error: -B, -l and -w options are meaningful only when launching rvinterf\n", |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
152 argv[0]); |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
153 exit(ERROR_USAGE); |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
154 } |
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
155 connect_local_socket(); |
341
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 } |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 while (read_command_input(command)) { |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 if (!strcasecmp(command, "c+m")) { |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 cmd_with_msg = 1; |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 if (!read_command_input(command)) |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 break; |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 if (!read_command_input(message)) |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 break; |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 } else |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 cmd_with_msg = 0; |
346
99471c57155a
fcup-rvtat program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
345
diff
changeset
|
167 rx_control(1); |
341
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 execute_command(); |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 fflush(stdout); |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 } |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 exit(0); |
692dbc4c2f07
fcup-atinterf program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 } |