summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNagy Gabor <ngaba@bibl.u-szeged.hu>2010-05-14 21:58:31 +0200
committerDan McGee <dan@archlinux.org>2010-05-14 15:03:21 -0500
commit25cd6c2e8da4d0659d259a38f00d512f97dbc962 (patch)
tree7ae044dcef0f1eaeceb457fd1d07e29edcb274a8
parentf03f09011f878ad0b3aea05602a1cb0a11d839e1 (diff)
downloadpacman-25cd6c2e8da4d0659d259a38f00d512f97dbc962.tar.xz
Fix a serious bug in the download code
After commit df99495b82 pacman downloaded files from the first repo only, and reported corrupted packages for all files from other repos. The download_size was set to 0 for _all_ transaction packages after downloading some files from the first repo. This code-block was moved to its correct place. Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--lib/libalpm/sync.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c
index 6bc0b37c..6b625ed6 100644
--- a/lib/libalpm/sync.c
+++ b/lib/libalpm/sync.c
@@ -857,12 +857,6 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data)
EVENT(trans, PM_TRANS_EVT_RETRIEVE_START, current->treename, NULL);
errors = _alpm_download_files(files, current->servers, cachedir);
- for(j = trans->add; j; j = j->next) {
- pmpkg_t *pkg = j->data;
- pkg->infolevel &= ~INFRQ_DSIZE;
- pkg->download_size = 0;
- }
-
if (errors) {
_alpm_log(PM_LOG_WARNING, _("failed to retrieve some files from %s\n"),
current->treename);
@@ -875,6 +869,12 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data)
}
}
+ for(j = trans->add; j; j = j->next) {
+ pmpkg_t *pkg = j->data;
+ pkg->infolevel &= ~INFRQ_DSIZE;
+ pkg->download_size = 0;
+ }
+
/* clear out value to let callback know we are done */
if(handle->totaldlcb) {
handle->totaldlcb(0);