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.
This commit is contained in:
Carlo Nucera 2020-07-20 15:56:52 -04:00
parent e3a3406db8
commit 0ca9744694

View file

@ -845,8 +845,11 @@ FileTransferError::FileTransferError(FileTransfer::Error error, std::shared_ptr<
: Error(args...), error(error), response(response) : Error(args...), error(error), response(response)
{ {
const auto hf = hintfmt(args...); const auto hf = hintfmt(args...);
if (response) { // FIXME: Due to https://github.com/NixOS/nix/issues/3841 we don't know how
err.hint = hintfmt("%1%\n\nresponse body:\n\n%2%", normaltxt(hf.str()), *response); // 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 { } else {
err.hint = hf; err.hint = hf;
} }