diff options
-rw-r--r-- | src/core/download.c | 3 | ||||
-rw-r--r-- | src/net/tcp/http.c | 4 | ||||
-rw-r--r-- | src/usr/imgmgmt.c | 7 |
3 files changed, 10 insertions, 4 deletions
diff --git a/src/core/download.c b/src/core/download.c index bc8901272..4522bf2c8 100644 --- a/src/core/download.c +++ b/src/core/download.c @@ -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, }, }; diff --git a/src/net/tcp/http.c b/src/net/tcp/http.c index 329324458..18030fe60 100644 --- a/src/net/tcp/http.c +++ b/src/net/tcp/http.c @@ -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 ) ) { diff --git a/src/usr/imgmgmt.c b/src/usr/imgmgmt.c index 0d2c9cb48..28801fe85 100644 --- a/src/usr/imgmgmt.c +++ b/src/usr/imgmgmt.c @@ -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 */ |