diff --git a/src/handler.rs b/src/handler.rs index 694c9e2..b0855e6 100644 --- a/src/handler.rs +++ b/src/handler.rs @@ -62,6 +62,32 @@ impl ConnectionHandler { } } + fn read_server(&mut self) { + loop { + match self.read_server_once() { + Ok(true) => (), + Ok(false) => break, + Err(e) => { + error!("Error reading server: {}", e); + break; + } + } + } + } + + fn write_server(&mut self) { + loop { + match self.write_server_once() { + Ok(true) => (), + Ok(false) => break, + Err(e) => { + error!("Error writing server: {}", e); + break; + } + } + } + } + fn read_server_once(&mut self) -> io::Result { let packet = match try!(self.server_stream.try_read()) { Some(packet) => packet, @@ -93,10 +119,7 @@ impl ConnectionHandler { } } - fn notify_server( - &mut self, event_loop: &mut EventLoop, request: ServerRequest) - -> io::Result<()> - { + fn notify_server(&mut self, request: ServerRequest) -> io::Result<()> { let packet = try!(request.to_packet()); self.server_queue.push_back(packet); Ok(()) @@ -123,28 +146,10 @@ impl Handler for ConnectionHandler { { if token == self.server_token { if event_set.is_writable() { - loop { - match self.write_server_once() { - Ok(true) => (), - Ok(false) => break, - Err(e) => { - error!("Error writing server: {}", e); - break; - } - } - } + self.write_server(); } if event_set.is_readable() { - loop { - match self.read_server_once() { - Ok(true) => (), - Ok(false) => break, - Err(e) => { - error!("Error reading server: {}", e); - break; - } - } - } + self.read_server(); } self.reregister_server(event_loop); } else { @@ -155,7 +160,7 @@ impl Handler for ConnectionHandler { fn notify(&mut self, event_loop: &mut EventLoop, request: Request) { match request { Request::ServerRequest(server_request) => { - match self.notify_server(event_loop, server_request) { + match self.notify_server(server_request) { Ok(()) => (), Err(e) => error!("Error processing server request: {}", e), }