diff --git a/src/sbbs3/zmodem.c b/src/sbbs3/zmodem.c index cd55dff7db6ce23c2177905d55d2d57c35fa6c03..6284c5d54ab917deb796da246ad61ad8d9828ae0 100644 --- a/src/sbbs3/zmodem.c +++ b/src/sbbs3/zmodem.c @@ -1500,7 +1500,10 @@ BOOL zmodem_send_file(zmodem_t* zm, char* fname, FILE* fp, BOOL request_init, ti type = zmodem_rx_header(zm,zm->recv_timeout); if(zm->cancelled) return(FALSE); - } while(type == ZACK); + } while(type == ZACK && is_connected(zm)); + + if(!is_connected(zm)) + return(FALSE); #if 0 lprintf(zm,LOG_INFO,"type : %d",type); @@ -1534,6 +1537,9 @@ BOOL zmodem_send_file(zmodem_t* zm, char* fname, FILE* fp, BOOL request_init, ti type = zmodem_send_from(zm, fp, pos, s.st_size, &sent_bytes); + if(!is_connected(zm)) + return(FALSE); + if(sent!=NULL) *sent+=sent_bytes;