|
Lines 66-71
Link Here
|
| 66 |
static time_t start; /* start progress */ |
66 |
static time_t start; /* start progress */ |
| 67 |
static time_t last_update; /* last progress update */ |
67 |
static time_t last_update; /* last progress update */ |
| 68 |
static char *file; /* name of the file being transferred */ |
68 |
static char *file; /* name of the file being transferred */ |
|
|
69 |
static off_t start_pos; /* initial position of transfer */ |
| 69 |
static off_t end_pos; /* ending position of transfer */ |
70 |
static off_t end_pos; /* ending position of transfer */ |
| 70 |
static off_t cur_pos; /* transfer position as of last refresh */ |
71 |
static off_t cur_pos; /* transfer position as of last refresh */ |
| 71 |
static volatile off_t *counter; /* progress counter */ |
72 |
static volatile off_t *counter; /* progress counter */ |
|
Lines 129-135
Link Here
|
| 129 |
int i, len; |
130 |
int i, len; |
| 130 |
int file_len; |
131 |
int file_len; |
| 131 |
|
132 |
|
| 132 |
transferred = *counter - cur_pos; |
133 |
transferred = *counter - (cur_pos ? cur_pos : start_pos); |
| 133 |
cur_pos = *counter; |
134 |
cur_pos = *counter; |
| 134 |
now = monotime(); |
135 |
now = monotime(); |
| 135 |
bytes_left = end_pos - cur_pos; |
136 |
bytes_left = end_pos - cur_pos; |
|
Lines 139-145
Link Here
|
| 139 |
else { |
140 |
else { |
| 140 |
elapsed = now - start; |
141 |
elapsed = now - start; |
| 141 |
/* Calculate true total speed when done */ |
142 |
/* Calculate true total speed when done */ |
| 142 |
transferred = end_pos; |
143 |
transferred = end_pos - start_pos; |
| 143 |
bytes_per_second = 0; |
144 |
bytes_per_second = 0; |
| 144 |
} |
145 |
} |
| 145 |
|
146 |
|
|
Lines 251-256
Link Here
|
| 251 |
{ |
252 |
{ |
| 252 |
start = last_update = monotime(); |
253 |
start = last_update = monotime(); |
| 253 |
file = f; |
254 |
file = f; |
|
|
255 |
start_pos = *ctr; |
| 254 |
end_pos = filesize; |
256 |
end_pos = filesize; |
| 255 |
cur_pos = 0; |
257 |
cur_pos = 0; |
| 256 |
counter = ctr; |
258 |
counter = ctr; |