diff options
Diffstat (limited to 'src/libstore/download.cc')
-rw-r--r-- | src/libstore/download.cc | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/libstore/download.cc b/src/libstore/download.cc index 72a08ef0089c..0b768b591783 100644 --- a/src/libstore/download.cc +++ b/src/libstore/download.cc @@ -102,7 +102,9 @@ struct CurlDownloader : public Downloader Callback<DownloadResult> callback) : downloader(downloader) , request(request) - , act(*logger, lvlTalkative, actDownload, fmt("downloading '%s'", request.uri), {request.uri}, request.parentAct) + , act(*logger, lvlTalkative, actDownload, + fmt(request.data ? "uploading '%s'" : "downloading '%s'", request.uri), + {request.uri}, request.parentAct) , callback(callback) { if (!request.expectedETag.empty()) @@ -371,12 +373,20 @@ struct CurlDownloader : public Downloader attempt++; + auto verb = request.data ? "upload" : "download"; + auto exc = code == CURLE_ABORTED_BY_CALLBACK && _isInterrupted - ? DownloadError(Interrupted, format("download of '%s' was interrupted") % request.uri) + ? DownloadError(Interrupted, fmt("%s of '%s' was interrupted", verb, request.uri)) : httpStatus != 0 - ? DownloadError(err, format("unable to download '%s': HTTP error %d (curl error: %s)") % request.uri % httpStatus % curl_easy_strerror(code)) - : DownloadError(err, format("unable to download '%s': %s (%d)") % request.uri % curl_easy_strerror(code) % code); + ? DownloadError(err, + fmt("unable to %s '%s': HTTP error %d", + verb, request.uri, httpStatus) + + (code == CURLE_OK ? "" : fmt(" (curl error: %s)", curl_easy_strerror(code))) + ) + : DownloadError(err, + fmt("unable to %s '%s': %s (%d)", + verb, request.uri, curl_easy_strerror(code), code)); /* If this is a transient error, then maybe retry the download after a while. */ |