From a37e2506b41f59afe790daa7e0a3c54e2f2a6b68 Mon Sep 17 00:00:00 2001 From: CosminPerRam Date: Sat, 31 Dec 2022 14:32:35 +0200 Subject: [PATCH] Change valve get_request_data return type from vec to Bufferer --- src/protocols/valve/protocol.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/protocols/valve/protocol.rs b/src/protocols/valve/protocol.rs index e4fc464..031cf84 100644 --- a/src/protocols/valve/protocol.rs +++ b/src/protocols/valve/protocol.rs @@ -178,21 +178,24 @@ impl ValveProtocol { } /// Ask for a specific request only. - fn get_request_data(&mut self, app: &App, protocol: u8, kind: Request) -> GDResult> { + fn get_request_data(&mut self, app: &App, protocol: u8, kind: Request) -> GDResult { let request_initial_packet = Packet::initial(kind.clone()).to_bytes(); self.socket.send(&request_initial_packet)?; let packet = self.receive(app, protocol, PACKET_SIZE)?; if packet.kind != 0x41 { //'A' - return Ok(packet.payload.clone()); + let data = packet.payload.clone(); + return Ok(Bufferer::new_with_data(Endianess::Little, &data)); } let challenge = packet.payload; let challenge_packet = Packet::challenge(kind.clone(), challenge).to_bytes(); self.socket.send(&challenge_packet)?; - Ok(self.receive(app, protocol, PACKET_SIZE)?.payload) + + let data = self.receive(app, protocol, PACKET_SIZE)?.payload; + Ok(Bufferer::new_with_data(Endianess::Little, &data)) } fn get_goldsrc_server_info(buffer: &mut Bufferer) -> GDResult { @@ -256,8 +259,7 @@ impl ValveProtocol { /// Get the server information's. fn get_server_info(&mut self, app: &App) -> GDResult { - let data = self.get_request_data(&app, 0, Request::INFO)?; - let mut buffer = Bufferer::new_with_data(Endianess::Little, &data); + let mut buffer = self.get_request_data(&app, 0, Request::INFO)?; if let App::GoldSrc(force) = app { if *force { @@ -356,8 +358,7 @@ impl ValveProtocol { /// Get the server player's. fn get_server_players(&mut self, app: &App, protocol: u8) -> GDResult> { - let data = self.get_request_data(&app, protocol, Request::PLAYERS)?; - let mut buffer = Bufferer::new_with_data(Endianess::Little, &data); + let mut buffer = self.get_request_data(&app, protocol, Request::PLAYERS)?; let count = buffer.get_u8()? as usize; let mut players: Vec = Vec::with_capacity(count); @@ -384,8 +385,7 @@ impl ValveProtocol { /// Get the server rules's. fn get_server_rules(&mut self, app: &App, protocol: u8) -> GDResult>> { - let data = self.get_request_data(&app, protocol, Request::RULES)?; - let mut buffer = Bufferer::new_with_data(Endianess::Little, &data); + let mut buffer = self.get_request_data(&app, protocol, Request::RULES)?; let count = buffer.get_u16()? as usize; let mut rules: Vec = Vec::with_capacity(count);