diff --git a/src/sbbs3/sexyz.c b/src/sbbs3/sexyz.c index 0c9ce1c10f3d8e3d9818502dcf59fac26f3190f0..418f491c3b2f79eccf6384e605317bded4a88624 100644 --- a/src/sbbs3/sexyz.c +++ b/src/sbbs3/sexyz.c @@ -648,7 +648,7 @@ void xmodem_progress(void* unused, unsigned block_num, ulong offset, ulong fsize if(mode&SEND) { total_blocks=num_blocks(fsize,xm.block_size); fprintf(statfp,"\rBlock (%lu%s): %lu/%lu Byte: %lu " - "Time: %lu:%02lu/%lu:%02lu CPS: %u %lu%% " + "Time: %lu:%02lu/%lu:%02lu %u cps %lu%% " ,xm.block_size%1024L ? xm.block_size: xm.block_size/1024L ,xm.block_size%1024L ? "" : "K" ,block_num @@ -663,7 +663,7 @@ void xmodem_progress(void* unused, unsigned block_num, ulong offset, ulong fsize ); } else if(mode&YMODEM) { fprintf(statfp,"\rBlock (%lu%s): %lu Byte: %lu " - "Time: %lu:%02lu/%lu:%02lu CPS: %u %lu%% " + "Time: %lu:%02lu/%lu:%02lu %u cps %lu%% " ,xm.block_size%1024L ? xm.block_size: xm.block_size/1024L ,xm.block_size%1024L ? "" : "K" ,block_num @@ -677,7 +677,7 @@ void xmodem_progress(void* unused, unsigned block_num, ulong offset, ulong fsize ); } else { /* XModem receive */ fprintf(statfp,"\rBlock (%lu%s): %lu Byte: %lu " - "Time: %lu:%02lu CPS: %u " + "Time: %lu:%02lu %u cps " ,xm.block_size%1024L ? xm.block_size: xm.block_size/1024L ,xm.block_size%1024L ? "" : "K" ,block_num @@ -696,9 +696,8 @@ void xmodem_progress(void* unused, unsigned block_num, ulong offset, ulong fsize * show the progress of the transfer like this: * zmtx: sending file "garbage" 4096 bytes ( 20%) */ -void zmodem_progress(void* cbdata, ulong start_pos, ulong current_pos) +void zmodem_progress(void* cbdata, ulong current_pos) { - char orig[128]; unsigned cps; long l; long t; @@ -707,25 +706,23 @@ void zmodem_progress(void* cbdata, ulong start_pos, ulong current_pos) now=time(NULL); if(now-last_progress>=progress_interval || current_pos >= zm.current_file_size || newline) { - t=now-zm.transfer_start; + t=now-zm.transfer_start_time; if(t<=0) t=1; - if(start_pos>current_pos) - start_pos=0; - if((cps=(current_pos-start_pos)/t)==0) + if(zm.transfer_start_pos>current_pos) + zm.transfer_start_pos=0; + if((cps=(current_pos-zm.transfer_start_pos)/t)==0) cps=1; /* cps so far */ l=zm.current_file_size/cps; /* total transfer est time */ l-=t; /* now, it's est time left */ if(l<0) l=0; - if(start_pos) - sprintf(orig,"From: %lu ", start_pos); - else - orig[0]=0; - fprintf(statfp,"\r%sKByte: %lu/%lu " - "Time: %lu:%02lu/%lu:%02lu CPS: %u %lu%% " - ,orig + fprintf(statfp,"\rKByte: %lu/%lu %u/CRC-%u " + "Time: %lu:%02lu/%lu:%02lu %u cps %lu%% " ,current_pos/1024 ,zm.current_file_size/1024 + ,zm.block_size + ,mode&RECV ? (zm.receive_32bit_data ? 32:16) : + (zm.can_fcs_32 && !zm.want_fcs_16) ? 32:16 ,t/60L ,t%60L ,l/60L @@ -1228,8 +1225,9 @@ static const char* usage= "opts = -y to overwrite files when receiving\n" " -o disable Zmodem CRC-32 mode (use CRC-16)\n" " -s disable Zmodem streaming (Slow Zmodem)\n" - " -4 transmit with 4K Zmodem blocks\n" - " -8 transmit with 8K Zmodem blocks (ZedZap)\n" + " -2 set initial Zmodem block size to 2K\n" + " -4 set initial Zmodem block size to 4K\n" + " -8 set maximum Zmodem block size to 8K (ZedZap)\n" " -! to pause after abnormal exit (error)\n" " -telnet to enable Telnet mode (the default)\n" " -rlogin to enable RLogin (pass-through) mode\n" @@ -1330,7 +1328,8 @@ int main(int argc, char **argv) zm.send_timeout =iniReadInteger(fp,"Zmodem","SendTimeout",zm.send_timeout); /* seconds */ zm.recv_timeout =iniReadInteger(fp,"Zmodem","RecvTimeout",zm.recv_timeout); /* seconds */ - zm.block_size =iniReadInteger(fp,"Zmodem","BlockSize",zm.block_size); /* 1024 or 8192 */ + zm.block_size =iniReadInteger(fp,"Zmodem","BlockSize",zm.block_size); /* 1024 */ + zm.max_block_size =iniReadInteger(fp,"Zmodem","MaxBlockSize",zm.max_block_size); /* 1024 or 8192 */ zm.max_errors =iniReadInteger(fp,"Zmodem","MaxErrors",zm.max_errors); zm.escape_telnet_iac =iniReadBool(fp,"Zmodem","EscapeTelnetIAC",TRUE); zm.want_fcs_16 =iniReadBool(fp,"Zmodem","CRC16",FALSE); @@ -1437,11 +1436,14 @@ int main(int argc, char **argv) case 'C': /* sz/rz compatible */ mode|=CRC; break; + case '2': + zm.block_size=2048; + break; case '4': zm.block_size=4096; break; - case '8': - zm.block_size=8192; + case '8': /* ZedZap */ + zm.max_block_size=8192; break; case 'O': /* disable Zmodem CRC-32 */ zm.want_fcs_16=TRUE;