summaryrefslogtreecommitdiffstats
path: root/lib/libalpm/sync.c
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2011-10-25 17:40:26 +0200
committerDan McGee <dan@archlinux.org>2011-10-25 17:40:26 +0200
commita708e7d28e890c3e230a215629b7f5c58c57f58d (patch)
treeb5efd2a09bdca63a8581d52df55bf93332db47b9 /lib/libalpm/sync.c
parent90ddcbe71d483884b7627237121b1dee05b07dd0 (diff)
parent2da59e1aa91fa4160ec1c8ec84d94d8141b2a832 (diff)
downloadpacman-a708e7d28e890c3e230a215629b7f5c58c57f58d.tar.gz
pacman-a708e7d28e890c3e230a215629b7f5c58c57f58d.tar.xz
Merge branch 'maint'
Diffstat (limited to 'lib/libalpm/sync.c')
-rw-r--r--lib/libalpm/sync.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c
index 78f7da9a..52049a8c 100644
--- a/lib/libalpm/sync.c
+++ b/lib/libalpm/sync.c
@@ -288,6 +288,7 @@ static int compute_download_size(alpm_pkg_t *newpkg)
char *fpath, *fnamepart = NULL;
off_t size = 0;
alpm_handle_t *handle = newpkg->handle;
+ int ret = 0;
if(newpkg->origin != PKG_FROM_SYNCDB) {
newpkg->infolevel |= INFRQ_DSIZE;
@@ -316,6 +317,9 @@ static int compute_download_size(alpm_pkg_t *newpkg)
size = newpkg->size - st.st_size;
size = size < 0 ? 0 : size;
}
+
+ /* tell the caller that we have a partial */
+ ret = 1;
} else if(handle->usedelta) {
off_t dltsize;
@@ -345,7 +349,7 @@ finish:
FREE(fpath);
FREE(fnamepart);
- return 0;
+ return ret;
}
int _alpm_sync_prepare(alpm_handle_t *handle, alpm_list_t **data)
@@ -606,7 +610,7 @@ int _alpm_sync_prepare(alpm_handle_t *handle, alpm_list_t **data)
for(i = trans->add; i; i = i->next) {
/* update download size field */
alpm_pkg_t *spkg = i->data;
- if(compute_download_size(spkg) != 0) {
+ if(compute_download_size(spkg) < 0) {
ret = -1;
goto cleanup;
}