struct pakfire_mirrorlist* mirrors;
struct pakfire_mirror* mirror;
+ // Effective URL
+ const char* effective_url;
+
// Authentication
unsigned int auth;
};
return pakfire_string_set(transfer->baseurl, baseurl);
}
+const char* pakfire_downloader_transfer_get_effective_url(struct pakfire_transfer* transfer) {
+ return transfer->effective_url;
+}
+
int pakfire_downloader_transfer_set_mirrorlist(
struct pakfire_transfer* transfer, struct pakfire_mirrorlist* mirrors) {
if (transfer->mirrors)
CURL* h = transfer->handle;
int r;
char* scheme = NULL;
- const char* url;
long response_code;
long http_version;
double total_time;
curl_easy_getinfo(h, CURLINFO_SCHEME, &scheme);
// Effective URL
- curl_easy_getinfo(h, CURLINFO_EFFECTIVE_URL, &url);
- if (url)
- CTX_DEBUG(downloader->ctx, " Effective URL: %s\n", url);
+ curl_easy_getinfo(h, CURLINFO_EFFECTIVE_URL, &transfer->effective_url);
+ if (transfer->effective_url)
+ CTX_DEBUG(downloader->ctx, " Effective URL: %s\n", transfer->effective_url);
// Response code
curl_easy_getinfo(h, CURLINFO_RESPONSE_CODE, &response_code);
char* expected_hexdigest = __pakfire_hexlify(transfer->expected_digest,
transfer->expected_digest_length);
- CTX_ERROR(downloader->ctx, "Download checksum for %s didn't match:\n", url);
+ CTX_ERROR(downloader->ctx, "Download checksum for %s didn't match:\n", transfer->effective_url);
CTX_ERROR(downloader->ctx, " Expected: %s\n", expected_hexdigest);
CTX_ERROR(downloader->ctx, " Computed: %s\n", computed_hexdigest);
struct pakfire_transfer* transfer, const char* title);
int pakfire_downloader_transfer_set_baseurl(
struct pakfire_transfer* transfer, const char* baseurl);
+const char* pakfire_downloader_transfer_get_effective_url(struct pakfire_transfer* transfer);
int pakfire_downloader_transfer_set_mirrorlist(
struct pakfire_transfer* transfer, struct pakfire_mirrorlist* mirrors);
int pakfire_downloader_transfer_set_size(