aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2020-06-09 14:05:15 +0200
committerEelco Dolstra <edolstra@gmail.com>2020-06-09 14:05:15 +0200
commit447ea52b0750785ba8d3b9fc9845d6f8f4c26811 (patch)
tree3aff01e93b09491a145a73864f17f8d2fb83ff99
parent6cfc2db49424c63b7ca6b837e8a4cb7bf373c01b (diff)
FileTransfer: Don't store status since curl already does that
-rw-r--r--src/libstore/filetransfer.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/libstore/filetransfer.cc b/src/libstore/filetransfer.cc
index e9684b3d4..29edbd0ad 100644
--- a/src/libstore/filetransfer.cc
+++ b/src/libstore/filetransfer.cc
@@ -56,7 +56,6 @@ struct curlFileTransfer : public FileTransfer
Callback<FileTransferResult> callback;
CURL * req = 0;
bool active = false; // whether the handle has been added to the multi object
- std::string status;
unsigned int attempt = 0;
@@ -167,7 +166,6 @@ struct curlFileTransfer : public FileTransfer
if (line.compare(0, 5, "HTTP/") == 0) { // new response starts
result.etag = "";
auto ss = tokenizeString<vector<string>>(line, " ");
- status = ss.size() >= 2 ? ss[1] : "";
result.data = std::make_shared<std::string>();
result.bodySize = 0;
acceptRanges = false;
@@ -183,7 +181,9 @@ struct curlFileTransfer : public FileTransfer
the expected ETag on a 200 response, then shut
down the connection because we already have the
data. */
- if (result.etag == request.expectedETag && status == "200") {
+ long httpStatus = 0;
+ curl_easy_getinfo(req, CURLINFO_RESPONSE_CODE, &httpStatus);
+ if (result.etag == request.expectedETag && httpStatus == 200) {
debug(format("shutting down on 200 HTTP response with expected ETag"));
return 0;
}