From 32c069f756c94baa0ffeea77e63455080889240d Mon Sep 17 00:00:00 2001 From: Zhang Jingqiang Date: Fri, 25 Oct 2024 23:26:51 +0800 Subject: [PATCH] g3proxy: send ppv2 header for http connection in divert_tcp escaper --- g3proxy/src/escape/divert_tcp/http_forward/mod.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/g3proxy/src/escape/divert_tcp/http_forward/mod.rs b/g3proxy/src/escape/divert_tcp/http_forward/mod.rs index 21ca405a4..df39232a4 100644 --- a/g3proxy/src/escape/divert_tcp/http_forward/mod.rs +++ b/g3proxy/src/escape/divert_tcp/http_forward/mod.rs @@ -16,7 +16,9 @@ use std::sync::Arc; -use g3_io_ext::{AsyncStream, LimitedBufReader, LimitedWriter, NilLimitedReaderStats}; +use g3_io_ext::{ + AsyncStream, LimitedBufReader, LimitedWriter, LimitedWriterStats, NilLimitedReaderStats, +}; use g3_types::net::{Host, OpensslClientConfig}; use super::{DivertTcpEscaper, DivertTcpEscaperStats}; @@ -38,7 +40,12 @@ impl DivertTcpEscaper { ) -> Result { let stream = self.tcp_connect_to(tcp_notes, task_notes).await?; - let (ups_r, ups_w) = stream.into_split(); + let (ups_r, mut ups_w) = stream.into_split(); + + let nw = self + .send_pp2_header(&mut ups_w, tcp_notes, task_notes, None) + .await?; + self.stats.add_write_bytes(nw); let mut w_wrapper_stats = HttpForwardRemoteWrapperStats::new(&self.stats, &task_stats); let mut r_wrapper_stats = HttpForwardTaskRemoteWrapperStats::new(task_stats);