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)
{
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;
}