Use floating point arithmetic to compute the ETA to avoid integer overflow

during slow transfers of large files.
This commit is contained in:
Dag-Erling Smørgrav 2003-03-11 21:33:43 +00:00
parent d278a7f9ba
commit b12d1620fb
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=112114

View file

@ -130,7 +130,7 @@ stat_eta(struct xferstat *xs)
elapsed = xs->last.tv_sec - xs->start.tv_sec;
received = xs->rcvd - xs->offset;
expected = xs->size - xs->rcvd;
eta = (elapsed * expected) / received;
eta = (long)((double)elapsed * expected / received);
if (eta > 3600) {
fprintf(stderr, "%02ld:", eta / 3600);
eta %= 3600;