rust/hedgewars-server/src/protocol.rs
changeset 15999 d73e6cb37f83
parent 15998 14fe5bfe9862
child 16000 d9f1b239b6d7
equal deleted inserted replaced
15998:14fe5bfe9862 15999:d73e6cb37f83
   100         stream: &mut R,
   100         stream: &mut R,
   101     ) -> Result<HwProtocolMessage> {
   101     ) -> Result<HwProtocolMessage> {
   102         use ProtocolError::*;
   102         use ProtocolError::*;
   103 
   103 
   104         loop {
   104         loop {
   105             if self.buffer.capacity() < 1024 {
   105             let remaining = self.buffer.capacity() - self.buffer.len();
   106                 self.buffer.reserve(1024 - self.buffer.capacity());
   106             if remaining < 1024 {
       
   107                 self.buffer.reserve(2048 - remaining);
   107             }
   108             }
   108 
   109 
   109             if !self.buffer.has_remaining() || self.is_recovering {
   110             if !self.buffer.has_remaining() || self.is_recovering {
   110                 //todo!("ensure the buffer doesn't grow indefinitely")
   111                 //todo!("ensure the buffer doesn't grow indefinitely")
   111                 match timeout(self.read_timeout, stream.read_buf(&mut self.buffer)).await {
   112                 match timeout(self.read_timeout, stream.read_buf(&mut self.buffer)).await {