diff --git a/src/sbbs3/sexyz.c b/src/sbbs3/sexyz.c index 46446c80d9763234e3862584be0f4eb9c4a831d7..4e7c96ed49c28582670f1434888710257993e762 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 242b69a114244f5e2295c41df2e3085afc2787ff..eb82bbbfe1ad3b604248107c9ea1d07c8c6f7298 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 d8e56450d0db8fee61e62b2ed9d9d2dfea5316cd..3e518809f26f37457bd01015e71bc6bf411e2103 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++) {