X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fimport%2Fimport-job.c;fp=src%2Fimport%2Fimport-job.c;h=cde40b0f97c349679c6a44495359d448b0268f07;hb=ff2670ad11a1a29d483b7a246c95b159ddc1137c;hp=337a5c5a22326f71eeccedf6e7db1e2a0c1ae002;hpb=8b71fce8c2bb0e0a8c2317a34f8f114ff10e6aa6;p=elogind.git diff --git a/src/import/import-job.c b/src/import/import-job.c index 337a5c5a2..cde40b0f9 100644 --- a/src/import/import-job.c +++ b/src/import/import-job.c @@ -573,6 +573,12 @@ static size_t import_job_header_callback(void *contents, size_t size, size_t nme return sz; } + if (j->on_header) { + r = j->on_header(j, contents, sz); + if (r < 0) + goto fail; + } + return sz; fail: @@ -672,10 +678,22 @@ int import_job_begin(ImportJob *j) { if (!hdr) return -ENOMEM; - j->request_header = curl_slist_new(hdr, NULL); - if (!j->request_header) - return -ENOMEM; + if (!j->request_header) { + j->request_header = curl_slist_new(hdr, NULL); + if (!j->request_header) + return -ENOMEM; + } else { + struct curl_slist *l; + + l = curl_slist_append(j->request_header, hdr); + if (!l) + return -ENOMEM; + + j->request_header = l; + } + } + if (j->request_header) { if (curl_easy_setopt(j->curl, CURLOPT_HTTPHEADER, j->request_header) != CURLE_OK) return -EIO; }