From e70379229bf951bd0934aa8214cebc4c172483e3 Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Mon, 6 Jun 2005 22:00:56 +0000 Subject: [PATCH] Added more "is_connected" checking in recv_byte() loops. --- src/sbbs3/sexyz.c | 2 +- src/sbbs3/xmodem.c | 15 ++++++--------- src/sbbs3/zmodem.c | 2 +- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/sbbs3/sexyz.c b/src/sbbs3/sexyz.c index 46446c80d9..4e7c96ed49 100644 --- a/src/sbbs3/sexyz.c +++ b/src/sbbs3/sexyz.c @@ -928,7 +928,7 @@ static int receive_files(char** fname_list, int fnames) outbuf.highwater_mark=0; /* don't delay ACK/NAK transmits */ /* Purge input buffer */ - while((i=recv_byte(NULL,0))!=NOINP) + while(is_connected(NULL) && (i=recv_byte(NULL,0))!=NOINP) lprintf(LOG_WARNING,"Throwing out received: %s",chr((uchar)i)); while(is_connected(NULL)) { diff --git a/src/sbbs3/xmodem.c b/src/sbbs3/xmodem.c index 242b69a114..eb82bbbfe1 100644 --- a/src/sbbs3/xmodem.c +++ b/src/sbbs3/xmodem.c @@ -98,14 +98,14 @@ static char *chr(uchar ch) int xmodem_put_ack(xmodem_t* xm) { - while(getcom(0)!=NOINP) + while(getcom(0)!=NOINP && is_connected(xm)) ; /* wait for any trailing data */ return putcom(ACK); } int xmodem_put_nak(xmodem_t* xm, unsigned block_num) { - while(getcom(0)!=NOINP) + while(getcom(0)!=NOINP && is_connected(xm)) ; /* wait for any trailing data */ if(block_num<=1) { @@ -191,18 +191,15 @@ int xmodem_get_block(xmodem_t* xm, uchar* block, unsigned expected_block_num) return(EOT); return(NOINP); } - i=getcom(xm->byte_timeout); - if(i==NOINP) + if((i=getcom(xm->byte_timeout))==NOINP) break; block_num=i; - i=getcom(xm->byte_timeout); - if(i==NOINP) + if((i=getcom(xm->byte_timeout))==NOINP) break; block_inv=i; calc_crc=calc_chksum=0; for(b=0;b<xm->block_size && is_connected(xm);b++) { - i=getcom(xm->byte_timeout); - if(i==NOINP) + if((i=getcom(xm->byte_timeout))==NOINP) break; block[b]=i; if((*xm->mode)&CRC) @@ -394,7 +391,7 @@ BOOL xmodem_put_eot(xmodem_t* xm) lprintf(xm,LOG_INFO,"Sending End-of-Text (EOT) indicator (%d)",errors+1); - while((ch=getcom(0))!=NOINP) + while((ch=getcom(0))!=NOINP && is_connected(xm)) lprintf(xm,LOG_INFO,"Throwing out received: %s",chr((uchar)ch)); putcom(EOT); diff --git a/src/sbbs3/zmodem.c b/src/sbbs3/zmodem.c index d8e56450d0..3e518809f2 100644 --- a/src/sbbs3/zmodem.c +++ b/src/sbbs3/zmodem.c @@ -1565,7 +1565,7 @@ int zmodem_recv_init(zmodem_t* zm lprintf(zm,LOG_DEBUG,"zmodem_recv_init"); - while(!zm->cancelled && (ch=zm->recv_byte(zm,0))!=NOINP) + while(is_connected(zm) && !zm->cancelled && (ch=zm->recv_byte(zm,0))!=NOINP) lprintf(zm,LOG_DEBUG,"Throwing out received: %s",chr((uchar)ch)); for(errors=0; errors<=zm->max_errors && !zm->cancelled && is_connected(zm); errors++) { -- GitLab