Implemented cabinet download progress indicator.
[captive.git] / src / install / acquire / moduriload.c
index 59256d6..fba1690 100644 (file)
@@ -147,7 +147,7 @@ struct captivemodid_module *module;
        else {
                struct acquire_cabinet *acquire_cabinet;
                /* acquire_cabinet_load() will call mod_uri_load_module_from_memory(): */
-               acquire_cabinet=acquire_cabinet_new_from_memory(file_base,file_length,uri);
+               acquire_cabinet=acquire_cabinet_new_from_memory(file_base,file_length,uri,module->cabinet_used);
                acquire_cabinet_load(acquire_cabinet);
                acquire_cabinet_free(acquire_cabinet);
                }
@@ -183,7 +183,8 @@ fail_free_file_buffer:
        g_free(file_buffer);
 }
 
-static void mod_uri_load_file_handle_remote_cabinet(GnomeVFSHandle *handle,GnomeVFSFileInfo *file_info,GnomeVFSURI *uri)
+static void mod_uri_load_file_handle_remote_cabinet
+               (GnomeVFSHandle *handle,GnomeVFSFileInfo *file_info,GnomeVFSURI *uri,gint cabinet_used)
 {
 struct acquire_cabinet *acquire_cabinet;
 
@@ -191,7 +192,7 @@ struct acquire_cabinet *acquire_cabinet;
        g_return_if_fail(file_info!=NULL);
        g_return_if_fail(uri!=NULL);
 
-       acquire_cabinet=acquire_cabinet_new_from_handle(handle,file_info,uri);
+       acquire_cabinet=acquire_cabinet_new_from_handle(handle,file_info,uri,cabinet_used);
        /* acquire_cabinet_load() will call mod_uri_load_module_from_memory(): */
        acquire_cabinet_load(acquire_cabinet);
        acquire_cabinet_free(acquire_cabinet);
@@ -223,8 +224,11 @@ GnomeVFSHandle *handle;
                }
        if (file_info_local.size<=MAX_FILE_LOAD_LENGTH)
                mod_uri_load_file_handle_to_memory(handle,&file_info_local,uri);
-       else
-               mod_uri_load_file_handle_remote_cabinet(handle,&file_info_local,uri);
+       else {
+gint cabinet_used=captivemodid_cabinet_length_to_used(file_info_local.size);
+
+               mod_uri_load_file_handle_remote_cabinet(handle,&file_info_local,uri,cabinet_used);
+               }
        errvfsresult=GNOME_VFS_OK;
        /* PASSTHRU */
 fail_close_handle: