From e9122e3317e1a9741d6e8baec9f7012f40a22947 Mon Sep 17 00:00:00 2001 From: Piotr Sikora Date: Wed, 11 Nov 2020 21:08:56 +0000 Subject: [PATCH] Always process HTTP headers before processing HTTP body. Signed-off-by: Piotr Sikora --- src/context.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/context.cc b/src/context.cc index 33fab486..f1cdcc6f 100644 --- a/src/context.cc +++ b/src/context.cc @@ -622,6 +622,12 @@ FilterHeadersStatus ContextBase::convertVmCallResultToFilterHeadersStatus(uint64 result > static_cast(FilterHeadersStatus::StopAllIterationAndWatermark)) { return FilterHeadersStatus::StopAllIterationAndWatermark; } + if (result == static_cast(FilterHeadersStatus::StopIteration)) { + // Always convert StopIteration (pause processing headers, but continue processing body) + // to StopAllIterationAndWatermark (pause all processing), since the former breaks all + // assumptions about HTTP processing. + return FilterHeadersStatus::StopAllIterationAndWatermark; + } return static_cast(result); }