david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

[downloader] Allow underlying downloads to provide detailed job progress

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown 2017-09-05 22:53:49 +01:00
parent e30cc5e9e5
commit a258b0897b
1 changed files with 9 additions and 2 deletions

View File

@ -111,13 +111,20 @@ static void downloader_finished ( struct downloader *downloader, int rc ) {
*/
static int downloader_progress ( struct downloader *downloader,
struct job_progress *progress ) {
int rc;
/* Allow data transfer to provide an accurate description */
if ( ( rc = job_progress ( &downloader->xfer, progress ) ) != 0 )
return rc;
/* This is not entirely accurate, since downloaded data may
* arrive out of order (e.g. with multicast protocols), but
* it's a reasonable first approximation.
*/
progress->completed = downloader->buffer.pos;
progress->total = downloader->buffer.len;
if ( ! progress->total ) {
progress->completed = downloader->buffer.pos;
progress->total = downloader->buffer.len;
}
return 0;
}