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

download
pull/1/head
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

@ -171,5 +171,6 @@ static struct async_operations download_async_operations = {
.reap = download_reap, .reap = download_reap,
.signal = { .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; 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 we have reached the content-length, stop now */
if ( http->content_length && if ( http->content_length &&
( http->buffer->fill >= http->content_length ) ) { ( http->buffer->fill >= http->content_length ) ) {

View File

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