From a2ec7a3bfd33a4792185a74e2ae20b48f7ac2de9 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 5 Jun 2018 14:37:26 +0200 Subject: [PATCH] Further improve upload messages --- src/libstore/download.cc | 14 ++++++-------- src/libstore/download.hh | 5 +++++ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/libstore/download.cc b/src/libstore/download.cc index 48d9a42e5..9a2d0dafa 100644 --- a/src/libstore/download.cc +++ b/src/libstore/download.cc @@ -307,8 +307,8 @@ struct CurlDownloader : public Downloader if (effectiveUrlCStr) result.effectiveUrl = effectiveUrlCStr; - debug(format("finished download of '%s'; curl status = %d, HTTP status = %d, body = %d bytes") - % request.uri % code % httpStatus % (result.data ? result.data->size() : 0)); + debug("finished %s of '%s'; curl status = %d, HTTP status = %d, body = %d bytes", + request.verb(), request.uri, code, httpStatus, result.data ? result.data->size() : 0); if (code == CURLE_WRITE_ERROR && result.etag == request.expectedETag) { code = CURLE_OK; @@ -373,20 +373,18 @@ struct CurlDownloader : public Downloader attempt++; - auto verb = request.data ? "upload" : "download"; - auto exc = code == CURLE_ABORTED_BY_CALLBACK && _isInterrupted - ? DownloadError(Interrupted, fmt("%s of '%s' was interrupted", verb, request.uri)) + ? DownloadError(Interrupted, fmt("%s of '%s' was interrupted", request.verb(), request.uri)) : httpStatus != 0 ? DownloadError(err, fmt("unable to %s '%s': HTTP error %d", - verb, request.uri, httpStatus) + request.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)); + request.verb(), request.uri, curl_easy_strerror(code), code)); /* If this is a transient error, then maybe retry the download after a while. */ @@ -547,7 +545,7 @@ struct CurlDownloader : public Downloader } for (auto & item : incoming) { - debug(format("starting download of %s") % item->request.uri); + debug("starting %s of %s", item->request.verb(), item->request.uri); item->init(); curl_multi_add_handle(curlm, item->req); item->active = true; diff --git a/src/libstore/download.hh b/src/libstore/download.hh index f56274b23..da55df7a6 100644 --- a/src/libstore/download.hh +++ b/src/libstore/download.hh @@ -25,6 +25,11 @@ struct DownloadRequest DownloadRequest(const std::string & uri) : uri(uri), parentAct(getCurActivity()) { } + + std::string verb() + { + return data ? "upload" : "download"; + } }; struct DownloadResult