Remove unnecessary buffer

This commit is contained in:
B. Blechschmidt 2023-11-08 21:14:22 +01:00
parent 3879e04327
commit 67c2aa1a22

View file

@ -45,7 +45,6 @@ pub struct HttpConnection {
server_inbuf: VecDeque<u8>, server_inbuf: VecDeque<u8>,
client_outbuf: VecDeque<u8>, client_outbuf: VecDeque<u8>,
server_outbuf: VecDeque<u8>, server_outbuf: VecDeque<u8>,
data_buf: VecDeque<u8>,
crlf_state: u8, crlf_state: u8,
counter: usize, counter: usize,
skip: usize, skip: usize,
@ -73,7 +72,6 @@ impl HttpConnection {
server_inbuf: VecDeque::default(), server_inbuf: VecDeque::default(),
client_outbuf: VecDeque::default(), client_outbuf: VecDeque::default(),
server_outbuf: VecDeque::default(), server_outbuf: VecDeque::default(),
data_buf: VecDeque::default(),
skip: 0, skip: 0,
counter: 0, counter: 0,
crlf_state: 0, crlf_state: 0,
@ -182,10 +180,6 @@ impl HttpConnection {
// Connection successful // Connection successful
self.state = HttpState::Established; self.state = HttpState::Established;
self.server_inbuf.clear(); self.server_inbuf.clear();
self.server_outbuf.append(&mut self.data_buf);
self.data_buf.clear();
return self.state_change(); return self.state_change();
} }
@ -330,11 +324,7 @@ impl ProxyHandler for HttpConnection {
self.server_inbuf.extend(buffer.iter()); self.server_inbuf.extend(buffer.iter());
} }
IncomingDirection::FromClient => { IncomingDirection::FromClient => {
if self.state == HttpState::Established { self.client_inbuf.extend(buffer.iter());
self.client_inbuf.extend(buffer.iter());
} else {
self.data_buf.extend(buffer.iter());
}
} }
} }
@ -370,7 +360,7 @@ impl ProxyHandler for HttpConnection {
match dir { match dir {
Direction::Incoming(incoming) => match incoming { Direction::Incoming(incoming) => match incoming {
IncomingDirection::FromServer => self.server_inbuf.len(), IncomingDirection::FromServer => self.server_inbuf.len(),
IncomingDirection::FromClient => self.client_inbuf.len().max(self.data_buf.len()), IncomingDirection::FromClient => self.client_inbuf.len(),
}, },
Direction::Outgoing(outgoing) => match outgoing { Direction::Outgoing(outgoing) => match outgoing {
OutgoingDirection::ToServer => self.server_outbuf.len(), OutgoingDirection::ToServer => self.server_outbuf.len(),