From 1f663e0cfa082c7a0198679093919d18ee39c44b Mon Sep 17 00:00:00 2001 From: phantasm4489 Date: Mon, 28 Feb 2022 10:59:38 +0000 Subject: [PATCH] ACP 1) Added check for EVO 3.5 to allow compiling under Evo 3.5.0 Express 1) Added check for EVO 3.5 to allow compiling under Evo 3.5.0 2) Persist daily byte allowance between calls (Eg if you have increased it by uploading) 3) Fix CPS calculations and display in a more user friendly way in ACP 4) Revert zmodem iac change that was unintentionally made --- ACP.e | 4 +++- axconsts.e | 2 ++ axobjects.e | 2 +- express.e | 32 ++++++++++++++++++++++++++------ ftpd.e | 25 +++++++++++++------------ 5 files changed, 45 insertions(+), 20 deletions(-) diff --git a/ACP.e b/ACP.e index 0fe243c..2414fb3 100644 --- a/ACP.e +++ b/ACP.e @@ -42,7 +42,7 @@ '*jsonParser', '*jsonCreate', '*stringlist', - '*acpversion' + '*acpversion' ENUM ERR_NONE,ERR_ALREADY_RUNNING,ERR_STARTUP, ERR_VALIDATE,ERR_NO_DISKFONT,ERR_FDS_RANGE @@ -52,7 +52,9 @@ CONST MAX_LINE=255 CONST FIONBIO=$8004667e CONST EWOULDBLOCK=35 +#ifndef EVO_3_5_0 CONST TAG_END=0 +#endif CONST NODECONFIG=1 CONST RUNMCP=2 diff --git a/axconsts.e b/axconsts.e index 787d57d..fe146a5 100644 --- a/axconsts.e +++ b/axconsts.e @@ -2,7 +2,9 @@ OPT MODULE +#ifndef EVO_3_5_0 EXPORT CONST TAG_DONE=0 +#endif EXPORT CONST LISTENQ=100 EXPORT CONST FIONBIO=$8004667e diff --git a/axobjects.e b/axobjects.e index 6d2b76d..d04fa97 100644 --- a/axobjects.e +++ b/axobjects.e @@ -60,7 +60,7 @@ EXPORT OBJECT user translatorID: CHAR msgBaseRJoin:INT confYM9: LONG ->not used - beginLogCall : LONG ->not used + todaysBytesLimit : LONG protocol: CHAR ->not really used uucpa: CHAR lineLength: CHAR diff --git a/express.e b/express.e index edcbc0f..0c5a5a6 100644 --- a/express.e +++ b/express.e @@ -14268,6 +14268,7 @@ PROC updateZDisplay() DEF tempstr[255]:STRING DEF xpos,tags2:PTR TO LONG,vi DEF v1,v2 + DEF d1,d2 IF netMailTransfer IF zModemInfo.currentOperation=ZMODEM_DOWNLOAD StringF(tempstr,'[Node \d] NetMail Send Window',node) @@ -14361,7 +14362,26 @@ PROC updateZDisplay() zmodemStatPrint(tempstr) ENDIF - StringF(tempstr,'\r\d[7]',zModemInfo.cps) + + IF zModemInfo.cps>900000000 + d1:=Shr(zModemInfo.cps,30) AND $FF + d2:=Shr(zModemInfo.cps,25) AND $1f + d2:=Shr(Mul(d2,10),5) + StringF(tempstr,'\r\d[2].\d[1]g/s',d1,d2) + ELSEIF zModemInfo.cps>900000 + d1:=Shr(zModemInfo.cps,20) AND $3FF + d2:=Shr(zModemInfo.cps,15) AND $1f + d2:=Shr(Mul(d2,10),5) + IF d1>100 THEN StringF(tempstr,'\r\d[3]m/s',d1) ELSE StringF(tempstr,'\r\d[2].\d[1]m/s',d1,d2) + ELSEIF zModemInfo.cps>900 + d1:=Shr(zModemInfo.cps,10) AND $3FF + d2:=Shr(zModemInfo.cps,5) AND $1f + d2:=Shr(Mul(d2,10),5) + IF d1>100 THEN StringF(tempstr,'\r\d[3]k/s',d1) ELSE StringF(tempstr,'\r\d[2].\d[1]k/s',d1,d2) + ELSE + StringF(tempstr,'\r\d[4]cps',zModemInfo.cps) + ENDIF + sendACPCommand2(tempstr,JH_TRANSFERCPS) ENDPROC @@ -14493,10 +14513,10 @@ PROC httpDownload(fileList: PTR TO stdlist, pupdateDownloadStats,httpPorts) Execute(linkStr,NIL,NIL) ENDPROC -PROC ftpUploadFileStart(fileName:PTR TO CHAR,filelen) +PROC ftpUploadFileStart(fileName:PTR TO CHAR,resumefrom) sendMasterUpload(FilePart(fileName)) - zModemInfo.filesize:=filelen - zModemInfo.resumePos:=0 + zModemInfo.filesize:=0 + zModemInfo.resumePos:=resumefrom zModemInfo.transPos:=0 ftptime:=getSystemTime() updateZDisplay() @@ -15658,7 +15678,7 @@ repbuff: ADD.L A2,A0 CLR.L D0 MOVE.B (A0)+,D0 - SUB.L A2,A0 + SUB.L A2,A0 MOVE.L lastIAC,D2 BNE.S testiac @@ -15669,7 +15689,7 @@ repbuff: testiac: CMP.B #1,D2 - BNE.S test1 ->testiac2 + BNE.S testiac2 CMP.B #255,D0 BNE.S test1 diff --git a/ftpd.e b/ftpd.e index 764f785..6c36687 100644 --- a/ftpd.e +++ b/ftpd.e @@ -248,11 +248,11 @@ PROC setSockOpt(sb,s,level,optname,optval,optlen ) MOVEM.L (A7)+,D1-D7/A0-A6 ENDPROC D0 -PROC uploadFileStart(ftpData:PTR TO ftpData,fn,pos) +PROC uploadFileStart(ftpData:PTR TO ftpData,fn,resumepos) DEF fs fs:=ftpData.uploadFileStart MOVE.L fn,-(A7) - MOVE.L pos,-(A7) + MOVE.L resumepos,-(A7) fs() ADD.L #8,A7 ENDPROC @@ -444,16 +444,17 @@ PROC freeFileList(fileList:PTR TO stdlist) ENDPROC PROC calcCPS(pd,t,t2) - DEF cps + DEF cps,td cps:=0 - IF t$1000000) - pd:=Shr(pd,4) AND $fffffff - cps:=Div(Mul(pd,50),(t2-t)) - cps:=Shl(cps,4) + td:=t2-t + IF (pd<0) OR (pd>$10000000) + pd:=Shr(pd,1) AND $7fffffff + td:=Div(td,50) + IF td<1 THEN td:=1 + cps:=Shl(Div(pd,td),1) ELSE - cps:=Div(Mul(pd,50),(t2-t)) + cps:=Div(Mul(pd,50),td) ENDIF ELSE cps:=pd @@ -1469,7 +1470,7 @@ PROC cmdStor(sb,ftp_c,data_s,data_c,filename:PTR TO CHAR,ftpData:PTR TO ftpData) writeLineEx(sb,ftp_c,temp) ELSE IF ftpData.uploadFileStart<>NIL - uploadFileStart(ftpData,filename,0) + uploadFileStart(ftpData,filename,ftpData.restPos) ENDIF buff:=New(32768) @@ -1526,7 +1527,7 @@ PROC cmdStor(sb,ftp_c,data_s,data_c,filename:PTR TO CHAR,ftpData:PTR TO ftpData) pos:=Seek(fh,0,OFFSET_CURRENT) ENDIF t2:=fastSystemTime() - cps:=calcCPS(ftpData.restPos-pos,startTime,t2) + cps:=calcCPS(pos-ftpData.restPos,startTime,t2) uploadFileProgress(ftpData,filename,pos,cps) ENDIF IF asynclib<>NIL @@ -1714,7 +1715,7 @@ PROC cmdRetr(sb,ftp_c,data_s,data_c,filename:PTR TO CHAR,ftpData:PTR TO ftpData) pos:=Seek(fh,0,OFFSET_CURRENT) ENDIF t2:=fastSystemTime() - cps:=calcCPS(ftpData.restPos-pos,startTime,t2) + cps:=calcCPS(pos-ftpData.restPos,startTime,t2) downloadFileProgress(ftpData,fn,pos,cps) ENDIF IF asynclib<>NIL