diff options
author | Dave Reisner <d@falconindy.com> | 2011-06-01 20:39:20 +0200 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2011-06-01 22:05:41 +0200 |
commit | 0d1fcd329fac091568ad7ad3978771a534e7e09e (patch) | |
tree | a1eae97e7917dbb9b0b6907c23a8794df19cd0bd | |
parent | 8807cac100acb2d368232833b2478e96a1806fa9 (diff) | |
download | pacman-0d1fcd329fac091568ad7ad3978771a534e7e09e.tar.gz pacman-0d1fcd329fac091568ad7ad3978771a534e7e09e.tar.xz |
lib/dload.c: remove assumption in continuation logic
Callers to curl_download_internal now tell us if its okay to continue a
transfer, so obey this instead of using a heuristic.
Signed-off-by: Dave Reisner <d@falconindy.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r-- | lib/libalpm/dload.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/lib/libalpm/dload.c b/lib/libalpm/dload.c index e29929ef..1825eed5 100644 --- a/lib/libalpm/dload.c +++ b/lib/libalpm/dload.c @@ -194,7 +194,7 @@ static int curl_download_internal(const char *url, const char *localpath, curl_easy_setopt(handle->curl, CURLOPT_FOLLOWLOCATION, 1L); curl_easy_setopt(handle->curl, CURLOPT_PROGRESSFUNCTION, curl_progress); curl_easy_setopt(handle->curl, CURLOPT_PROGRESSDATA, (void *)&dlfile); - curl_easy_setopt(handle->curl, CURLOPT_LOW_SPEED_LIMIT, 1200L); + curl_easy_setopt(handle->curl, CURLOPT_LOW_SPEED_LIMIT, 1024L); curl_easy_setopt(handle->curl, CURLOPT_LOW_SPEED_TIME, 10L); useragent = getenv("HTTP_USER_AGENT"); @@ -202,10 +202,8 @@ static int curl_download_internal(const char *url, const char *localpath, curl_easy_setopt(handle->curl, CURLOPT_USERAGENT, useragent); } - /* TODO: no assuming here. the calling function should tell us what's kosher */ - if(!force && stat(destfile, &st) == 0) { - /* assume its a sync, so we're starting from scratch. but, only download - * our local is out of date. */ + if(!allow_resume && !force && stat(destfile, &st) == 0) { + /* start from scratch, but only download if our local is out of date. */ curl_easy_setopt(handle->curl, CURLOPT_TIMECONDITION, CURL_TIMECOND_IFMODSINCE); curl_easy_setopt(handle->curl, CURLOPT_TIMEVALUE, (long)st.st_mtime); } else if(stat(tempfile, &st) == 0 && allow_resume) { |