aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/filetransfer.cc
diff options
context:
space:
mode:
authorCarlo Nucera <carlo.nucera@protonmail.com>2020-07-20 15:56:52 -0400
committerCarlo Nucera <carlo.nucera@protonmail.com>2020-07-20 15:57:58 -0400
commit0ca9744694a5294e995fcddc11f5f195c84036a4 (patch)
treeb0a342acf6d9c4c96891c0ca73ea2d2bef80ffd4 /src/libstore/filetransfer.cc
parente3a3406db833c763d6214747bfff430061337df3 (diff)
Use heuristics to decide when to show the response
Due to https://github.com/NixOS/nix/issues/3841 we don't know how print different messages for different verbosity levels.
Diffstat (limited to 'src/libstore/filetransfer.cc')
-rw-r--r--src/libstore/filetransfer.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/libstore/filetransfer.cc b/src/libstore/filetransfer.cc
index 4d35bd2b5..4149f8155 100644
--- a/src/libstore/filetransfer.cc
+++ b/src/libstore/filetransfer.cc
@@ -845,8 +845,11 @@ FileTransferError::FileTransferError(FileTransfer::Error error, std::shared_ptr<
: Error(args...), error(error), response(response)
{
const auto hf = hintfmt(args...);
- if (response) {
- err.hint = hintfmt("%1%\n\nresponse body:\n\n%2%", normaltxt(hf.str()), *response);
+ // FIXME: Due to https://github.com/NixOS/nix/issues/3841 we don't know how
+ // to print different messages for different verbosity levels. For now
+ // we add some heuristics for detecting when we want to show the response.
+ if (response && (response->size() < 1024 || response->find("<html>") != string::npos)) {
+ err.hint = hintfmt("%1%\n\nresponse body:\n\n%2%", normaltxt(hf.str()), *response);
} else {
err.hint = hf;
}