mft_retry = true;
do {
error = handle_manifest(mft, rpp_parent_crl, &pp);
+ if (!mft_retry)
+ uri_refput(mft);
if (!error || !mft_retry)
break;
- pr_info("Retrying repository download to discard 'transient inconsistency' manifest issue (see RFC 6481 section 5)");
+ pr_info("Retrying repository download to discard 'transient inconsistency' manifest issue (see RFC 6481 section 5) '%s'",
+ uri_get_printable(caRepository));
error = download_files(caRepository, false, true);
if (error)
break;
+ uri_refget(mft);
mft_retry = false;
} while (true);
pr_debug("Going to RSYNC '%s'.", uri_get_printable(rsync_uri));
+ /* Don't store when "force" and if its already downloaded */
error = do_rsync(rsync_uri, is_ta);
- if (!error)
+ if (!error && !(force && is_already_downloaded(rsync_uri)))
error = mark_as_downloaded(rsync_uri);
uri_refput(rsync_uri);