summaryrefslogtreecommitdiffstats
path: root/lib/libalpm/sync.c
diff options
context:
space:
mode:
authorDave Reisner <dreisner@archlinux.org>2011-10-18 16:46:47 +0200
committerDan McGee <dan@archlinux.org>2011-10-25 17:38:12 +0200
commit2da59e1aa91fa4160ec1c8ec84d94d8141b2a832 (patch)
tree903d7d3d0a9fe37cb9c82bec62ba7746601c6c27 /lib/libalpm/sync.c
parent571f2f78141a5c13aaf90cfbfe99c04af8158e4e (diff)
downloadpacman-2da59e1aa91fa4160ec1c8ec84d94d8141b2a832.tar.gz
pacman-2da59e1aa91fa4160ec1c8ec84d94d8141b2a832.tar.xz
lib/sync: inform callers of compute_download_size of a partial
Extend the return values of compute_download_size to allow callers to know that a .part file exists for the package. This extra value isn't currently used, but it'll be needed later on. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
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 08d634d6..54b9794a 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;
}