Marked decoder as failed when request/response parsing failed. Review: https://reviews.apache.org/r/58580/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/459873a2 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/459873a2 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/459873a2 Branch: refs/heads/1.2.x Commit: 459873a26279162cdcb4a47d5bf8f4b0984d2ccb Parents: 8d847ec Author: Anindya Sinha <[email protected]> Authored: Fri Apr 21 09:44:04 2017 -0700 Committer: Anand Mazumdar <[email protected]> Committed: Fri Apr 21 09:59:48 2017 -0700 ---------------------------------------------------------------------- 3rdparty/libprocess/src/decoder.hpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/459873a2/3rdparty/libprocess/src/decoder.hpp ---------------------------------------------------------------------- diff --git a/3rdparty/libprocess/src/decoder.hpp b/3rdparty/libprocess/src/decoder.hpp index 4c779d4..a026d16 100644 --- a/3rdparty/libprocess/src/decoder.hpp +++ b/3rdparty/libprocess/src/decoder.hpp @@ -205,6 +205,7 @@ private: http_parser_parse_url(decoder->url.data(), decoder->url.size(), 0, &url); if (parse_url != 0) { + decoder->failure = true; return parse_url; } @@ -231,6 +232,7 @@ private: http::query::decode(decoder->query); if (decoded.isError()) { + decoder->failure = true; return 1; } @@ -242,6 +244,7 @@ private: if (encoding.isSome() && encoding.get() == "gzip") { Try<std::string> decompressed = gzip::decompress(decoder->request->body); if (decompressed.isError()) { + decoder->failure = true; return 1; } decoder->request->body = decompressed.get(); @@ -435,7 +438,6 @@ private: http::Status::string(decoder->parser.status_code); } else { decoder->failure = true; - return 1; } @@ -666,7 +668,6 @@ private: http::Status::string(decoder->parser.status_code); } else { decoder->failure = true; - return 1; } @@ -919,6 +920,7 @@ private: http_parser_parse_url(decoder->url.data(), decoder->url.size(), 0, &url); if (parse_url != 0) { + decoder->failure = true; return parse_url; } @@ -945,6 +947,7 @@ private: http::query::decode(decoder->query); if (decoded.isError()) { + decoder->failure = true; return 1; } @@ -986,6 +989,7 @@ private: decoder->decompressor->decompress(std::string(data, length)); if (decompressed.isError()) { + decoder->failure = true; return 1; } @@ -1010,6 +1014,7 @@ private: if (decoder->decompressor.get() != nullptr && !decoder->decompressor->finished()) { writer.fail("Failed to decompress body"); + decoder->failure = true; return 1; }
