// cURL handle
CURL* handle;
+ // Headers
+ struct curl_slist* headers;
+
// URL
CURLU* fullurl;
if (transfer->evp)
EVP_MD_CTX_free(transfer->evp);
+ if (transfer->headers)
+ curl_slist_free_all(transfer->headers);
if (transfer->mime)
curl_mime_free(transfer->mime);
if (transfer->fullurl)
// Increment tries
transfer->tries++;
- // Compose the URL
- r = pakfire_downloader_transfer_prepare_url(downloader, transfer);
- if (r) {
- CTX_ERROR(transfer->ctx, "Could not compose URL: %m\n");
- return r;
- }
-
- // Add any payload
- if (transfer->mime) {
- r = curl_easy_setopt(transfer->handle, CURLOPT_MIMEPOST, transfer->mime);
- if (r) {
- CTX_ERROR(transfer->ctx, "Could not set POST payload: %s\n", curl_easy_strerror(r));
- return r;
- }
- }
-
// Set special options for direction
switch (transfer->direction) {
case PAKFIRE_TRANSFER_DOWNLOAD:
break;
}
+ // Compose the URL
+ r = pakfire_downloader_transfer_prepare_url(downloader, transfer);
+ if (r) {
+ CTX_ERROR(transfer->ctx, "Could not compose URL: %m\n");
+ return r;
+ }
+
+ // Add any headers
+ if (transfer->headers) {
+ r = curl_easy_setopt(transfer->handle, CURLOPT_HTTPHEADER, transfer->headers);
+ if (r) {
+ CTX_ERROR(transfer->ctx, "Could not set headers: %s\n", curl_easy_strerror(r));
+ return r;
+ }
+ }
+
+ // Add any payload
+ if (transfer->mime) {
+ r = curl_easy_setopt(transfer->handle, CURLOPT_MIMEPOST, transfer->mime);
+ if (r) {
+ CTX_ERROR(transfer->ctx, "Could not set POST payload: %s\n", curl_easy_strerror(r));
+ return r;
+ }
+ }
+
// If we do not have an output file, we will create a temporary file
if (!transfer->f) {
r = pakfire_downloader_transfer_prepare_tmpfile(transfer);