From 55938b18a5c216eed1888bb3ac86c69bb13b4a57 Mon Sep 17 00:00:00 2001 From: Titouan Rigoudy Date: Thu, 18 Feb 2016 10:16:57 +0100 Subject: [PATCH] Use try_read instead of read on socket. --- src/main.rs | 2 +- src/proto/connection.rs | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main.rs b/src/main.rs index 51f3d4f..9c669a0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -16,7 +16,7 @@ use mio::tcp::TcpStream; use proto::Connection; use server::ServerConnection; -const SERVER_TOKEN : Token = Token(0); +const SERVER_TOKEN: Token = Token(0); #[derive(Debug)] struct ConnectionHandler { diff --git a/src/proto/connection.rs b/src/proto/connection.rs index f4a69fa..100353e 100644 --- a/src/proto/connection.rs +++ b/src/proto/connection.rs @@ -4,6 +4,7 @@ use std::io::{Cursor, Read, Write}; use std::mem; use byteorder::{ByteOrder, LittleEndian, ReadBytesExt, WriteBytesExt}; +use mio::TryRead; use mio::tcp::TcpStream; const MAX_PACKET_SIZE: usize = 1 << 20; // 1 MiB @@ -152,8 +153,10 @@ impl Connection { pub fn ready_to_read(&mut self, stream: &mut TcpStream) { let offset = self.buffer.len() - self.num_bytes_left; - match stream.read(&mut self.buffer[offset..]) { - Ok(num_bytes_read) => { + match stream.try_read(&mut self.buffer[offset..]) { + Ok(None) => (), + + Ok(Some(num_bytes_read)) => { assert!(num_bytes_read <= self.num_bytes_left); self.num_bytes_left -= num_bytes_read; },