2000-08-20 Michael Chastain <chastain@redhat.com>

* remote.c (read_frame): Handle SERIAL_TIMEOUT while reading
      checksum.
This commit is contained in:
Andrew Cagney 2000-08-24 10:48:22 +00:00
parent 6dd8c765d3
commit e1b09194cb
2 changed files with 20 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2000-08-20 Michael Chastain <chastain@redhat.com>
* remote.c (read_frame): Handle SERIAL_TIMEOUT while reading
checksum.
2000-08-23 Kevin Buettner <kevinb@redhat.com>
* dstread.c (dst_symfile_offsets): Protoize.

View File

@ -3871,12 +3871,25 @@ read_frame (char *buf,
case '#':
{
unsigned char pktcsum;
int check_0 = 0;
int check_1 = 0;
buf[bc] = '\0';
pktcsum = fromhex (readchar (remote_timeout)) << 4;
pktcsum |= fromhex (readchar (remote_timeout));
check_0 = readchar (remote_timeout);
if (check_0 >= 0)
check_1 = readchar (remote_timeout);
if (check_0 == SERIAL_TIMEOUT || check_1 == SERIAL_TIMEOUT)
{
if (remote_debug)
fputs_filtered ("Timeout in checksum, retrying\n", gdb_stdlog);
return -1;
}
else if (check_0 < 0 || check_1 < 0)
error ("Communication error in checksum");
pktcsum = (fromhex (check_0) << 4) | fromhex (check_1);
if (csum == pktcsum)
return bc;