Skip to content

Commit

Permalink
check in missed files with changes relating to tracking uploads/downl…
Browse files Browse the repository at this point in the history
…oads >2gb
  • Loading branch information
dmcoles committed Dec 8, 2022
1 parent 5cd97f3 commit 48c98a0
Show file tree
Hide file tree
Showing 6 changed files with 328 additions and 291 deletions.
7 changes: 4 additions & 3 deletions axobjects.e
Original file line number Diff line number Diff line change
Expand Up @@ -124,8 +124,9 @@ EXPORT OBJECT zModem
currentOperation: LONG
freeDFlag: LONG
fileList:PTR TO stdlist
current: LONG
total: LONG
currentUL: LONG
currentDL: LONG
totalDL: LONG
shouldUpdateDownloadStats: CHAR
needUpdateDownloadStats: CHAR
ENDOBJECT
Expand Down Expand Up @@ -274,7 +275,7 @@ ENDOBJECT
EXPORT OBJECT bgCheckData
semi: ss
checkedCount: LONG
checkedBytes: LONG
checkedBytes[8]:ARRAY OF CHAR
ENDOBJECT

EXPORT OBJECT diskObjectCacheItem
Expand Down
53 changes: 53 additions & 0 deletions bcd.e
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,29 @@ EXPORT PROC addBCD(bcdTotal:PTR TO CHAR, valToAdd)
addBCD2(bcdTotal,bcdVal)
ENDPROC

EXPORT PROC mulBCD(bcdVal:PTR TO CHAR,valToMul)
DEF tmpVal[8]:ARRAY OF CHAR
DEF i
CopyMem(bcdVal,tmpVal,8)
convertToBCD(0,bcdVal)
WHILE(valToMul)
FOR i:=1 TO Mod(valToMul,10)
addBCD2(bcdVal,tmpVal)
ENDFOR

valToMul:=Div(valToMul,10)
tmpVal[0]:=Shl(tmpVal[0] AND $F,4) OR Shr(tmpVal[1] AND $F0,4)
tmpVal[1]:=Shl(tmpVal[1] AND $F,4) OR Shr(tmpVal[2] AND $F0,4)
tmpVal[2]:=Shl(tmpVal[2] AND $F,4) OR Shr(tmpVal[3] AND $F0,4)
tmpVal[3]:=Shl(tmpVal[3] AND $F,4) OR Shr(tmpVal[4] AND $F0,4)
tmpVal[4]:=Shl(tmpVal[4] AND $F,4) OR Shr(tmpVal[5] AND $F0,4)
tmpVal[5]:=Shl(tmpVal[5] AND $F,4) OR Shr(tmpVal[6] AND $F0,4)
tmpVal[6]:=Shl(tmpVal[6] AND $F,4) OR Shr(tmpVal[7] AND $F0,4)
tmpVal[7]:=Shl(tmpVal[7] AND $F,4)

ENDWHILE
ENDPROC

EXPORT PROC divBCD1024(bcdVal:PTR TO CHAR)

DEF decVal[16]:ARRAY OF CHAR
Expand Down Expand Up @@ -120,6 +143,36 @@ EXPORT PROC divBCD1024(bcdVal:PTR TO CHAR)
ENDFOR
ENDPROC

EXPORT PROC divBCD(dividend:PTR TO CHAR, divisor)
DEF decVal[16]:ARRAY OF CHAR
DEF i,n=0,v,r

FOR i:=0 TO 7
decVal[n]:=Shr(dividend[i] AND $f0,4)
n++
decVal[n]:=dividend[i] AND $f
n++
ENDFOR

v:=0
r:=0
FOR i:=0 TO 15
IF r
r:=Mul(r,10)
r+=decVal[i];
ELSE
r:=decVal[i];
ENDIF

v:=Mul(v,10)
IF r>=divisor
n:=Div(r,divisor)
v+=n
r:=r-Mul(n,divisor);
ENDIF
ENDFOR

ENDPROC v

EXPORT PROC convertFromBCD(inArray:PTR TO CHAR)
DEF tempBCD[8]:ARRAY
Expand Down
39 changes: 18 additions & 21 deletions ftpd.e
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ MODULE 'socket',
'*axobjects',
'*axenums',
'*tooltypes',
'*miscfuncs'
'*miscfuncs',
'*bcd'


EXPORT OBJECT ftpData
Expand Down Expand Up @@ -258,23 +259,24 @@ PROC uploadFileStart(ftpData:PTR TO ftpData,fn,resumepos)
ADD.L #8,A7
ENDPROC

PROC checkDownloadRatio(ftpData:PTR TO ftpData,fn,pos,res:PTR TO CHAR)
PROC checkDownloadRatio(ftpData:PTR TO ftpData,fn,flen,res:PTR TO CHAR)
DEF cdr
cdr:=ftpData.checkDownloadRatio
MOVE.L fn,-(A7)
MOVE.L pos,-(A7)
MOVE.L flen,-(A7)
MOVE.L res,-(A7)
cdr()
ADD.L #12,A7
ENDPROC D0

PROC downloadFileStart(ftpData:PTR TO ftpData,fn,pos)
PROC downloadFileStart(ftpData:PTR TO ftpData,fn,flen,pos)
DEF fs
fs:=ftpData.downloadFileStart
MOVE.L fn,-(A7)
MOVE.L flen,-(A7)
MOVE.L pos,-(A7)
fs()
ADD.L #8,A7
ADD.L #12,A7
ENDPROC

PROC uploadFileEnd(ftpData:PTR TO ftpData,fn,result)
Expand Down Expand Up @@ -446,17 +448,13 @@ ENDPROC

PROC calcCPS(pd,t,t2)
DEF cps,td
DEF bcdVal[8]:ARRAY OF CHAR
cps:=0
IF t<t2
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),td)
ENDIF
td:=t2-t
IF td
convertToBCD(pd,bcdVal)
mulBCD(bcdVal,50)
cps:=divBCD(bcdVal,td)
ELSE
cps:=pd
ENDIF
Expand Down Expand Up @@ -1619,7 +1617,7 @@ PROC cmdRetr(sb,ftp_c,data_s,data_c,filename:PTR TO CHAR,ftpData:PTR TO ftpData)
DEF buff
DEF asynclib
DEF fn[255]:STRING
DEF r,l,pos,cps,lastpos
DEF r,l,pos,cps,lastpos,flen
DEF fh
DEF t,t2,startTime
DEF candl=TRUE
Expand Down Expand Up @@ -1656,7 +1654,9 @@ PROC cmdRetr(sb,ftp_c,data_s,data_c,filename:PTR TO CHAR,ftpData:PTR TO ftpData)

getFileName(ftpData,filename,fn)
fh:=0
flen:=0
IF StrLen(fn)
flen:=getFileSize(fn)
IF asynclib<>NIL
writeLineEx(sb,ftp_c, '150 Opening BINARY connection with ASYNC\b\n')
fh:=OpenAsync(fn,MODE_READ,32768)
Expand All @@ -1678,18 +1678,15 @@ PROC cmdRetr(sb,ftp_c,data_s,data_c,filename:PTR TO CHAR,ftpData:PTR TO ftpData)
pos:=ftpData.restPos
IF asynclib<>NIL
SeekAsync(fh,pos,MODE_START)
pos:=SeekAsync(fh,0,MODE_CURRENT)
ELSE
Seek(fh,pos,OFFSET_BEGINNING)
pos:=Seek(fh,0,OFFSET_CURRENT)
ENDIF
IF (ftpData.checkDownloadRatio<>NIL) ANDALSO (checkDownloadRatio(ftpData,fn,pos,res)=FALSE)
IF (ftpData.checkDownloadRatio<>NIL) ANDALSO (checkDownloadRatio(ftpData,fn,flen,res)=FALSE)
StringF(temp,'550 \s\b\n',res)
writeLineEx(sb,ftp_c,temp)
candl:=FALSE
ELSE
IF (ftpData.downloadFileStart<>NIL) THEN downloadFileStart(ftpData,fn,pos)
ENDIF
IF (ftpData.downloadFileStart<>NIL) THEN downloadFileStart(ftpData,fn,flen,pos)
ENDIF
IF candl
buff:=New(32768)
Expand Down
2 changes: 1 addition & 1 deletion hydra.e
Original file line number Diff line number Diff line change
Expand Up @@ -2571,7 +2571,7 @@ PROC hydra(hyd:PTR TO hydra_t,txpathname:PTR TO CHAR,txalias:PTR TO CHAR)
proc:=hyd.hyd_close
proc(hyd.txfd)
proc:=hyd.hyd_downloadcompleted
IF proc THEN proc(hyd.txfsize)
IF proc THEN proc(hyd.txfsize,hyd.txfsize-hyd.txoffset)
hydra_pct(hyd,TRUE)
t1,t2:=time()
t:=Mul((t1-hyd.txstart1),50)+t2-hyd.txstart2
Expand Down
Loading

0 comments on commit 48c98a0

Please sign in to comment.