david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

Keep HTTP progress updated, and display a progress indicator during the

download
This commit is contained in:
Michael Brown 2007-01-29 04:19:45 +00:00
parent 1a79437888
commit bde8878eef
3 changed files with 10 additions and 4 deletions

View File

@ -170,6 +170,7 @@ static void download_reap ( struct async *async ) {
static struct async_operations download_async_operations = {
.reap = download_reap,
.signal = {
[SIGCHLD] = download_sigchld,
[SIGCHLD] = download_sigchld,
[SIGUPDATE] = SIG_IGN,
},
};

View File

@ -253,6 +253,10 @@ static void http_rx_data ( struct http_request *http,
return;
}
/* Update progress */
http->async.completed = http->buffer->fill;
http->async.total = http->content_length;
/* If we have reached the content-length, stop now */
if ( http->content_length &&
( http->buffer->fill >= http->content_length ) ) {

View File

@ -56,9 +56,10 @@ int imgfetch ( const char *uri_string, const char *name,
strncpy ( image->name, name, ( sizeof ( image->name ) - 1 ) );
/* Download the file */
if ( ( rc = async_block ( &async, start_download ( uri_string, &async,
&image->data,
&image->len ))) !=0)
if ( ( rc = async_block_progress ( &async,
start_download ( uri_string, &async,
&image->data,
&image->len )))!=0)
goto err;
/* Register the image */