From 01a0d9164d47ab20363ce82a2ca1b9966479e204 Mon Sep 17 00:00:00 2001 From: "B. Blechschmidt" Date: Mon, 26 Feb 2024 01:24:22 +0100 Subject: [PATCH] Fix banner bug with HTTP proxies --- src/http.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/http.rs b/src/http.rs index e225940..73cf9b6 100644 --- a/src/http.rs +++ b/src/http.rs @@ -172,6 +172,8 @@ impl HttpConnection { return Ok(()); } + let header_size = self.counter; + self.counter = 0; self.crlf_state = 0; @@ -192,7 +194,9 @@ impl HttpConnection { if status_code == 200 { // Connection successful self.state = HttpState::Established; - self.server_inbuf.clear(); + // The server may have sent a banner already (SMTP, SSH, etc.). + // Therefore, server_inbuf must retain this data. + self.server_inbuf.drain(0..header_size); return self.state_change().await; }