jcs
/subtext
/amendments
/242
serial: Cope with not getting the beginning of the CONNECT line
jcs made amendment 242 over 2 years ago
--- serial.c Mon Jul 18 17:28:20 2022
+++ serial.c Sat Aug 13 13:15:00 2022
@@ -285,8 +285,7 @@ maybe_read:
if (serial_input_buf_len < sizeof(serial_input_buf)) {
SerGetBuf(serial_in_refnum, &len);
if (len) {
- len = MIN(len,
- sizeof(serial_input_buf) - serial_input_buf_len);
+ len = MIN(len, sizeof(serial_input_buf) - serial_input_buf_len);
FSRead(serial_in_refnum, &len,
serial_input_buf + serial_input_buf_len);
serial_input_buf[serial_input_buf_len + len] = '\0';
@@ -415,6 +414,7 @@ serial_idle(void)
break;
}
case SERIAL_STATE_ANSWERED: {
+ char *connect;
long baud; /* optimistic :) */
short count;
@@ -429,12 +429,13 @@ serial_idle(void)
if ((line = serial_get_line(false)) == NULL)
break;
- if (strstr(line, "CONNECT ") != NULL) {
+ /* sometimes we don't get the beginning of CONNECT */
+ if ((connect = strstr(line, "NECT ")) != NULL) {
the_serial_node.state = SERIAL_STATE_CONNECTED;
- if (sscanf(line, "CONNECT %ld/%n", &baud, &count) == 1 &&
+ if (sscanf(connect, "NECT %ld/%n", &baud, &count) == 1 &&
count > 0)
- the_serial_node.session->tspeed = baud;
+ the_serial_node.session->tspeed = baud;
}
break;