rust/hedgewars-server/src/server/network.rs
changeset 15102 80ff12edf5e6
parent 15098 9397e07b3086
child 15103 823052e66611
equal deleted inserted replaced
15101:f772013867e7 15102:80ff12edf5e6
    18 use slab::Slab;
    18 use slab::Slab;
    19 
    19 
    20 use crate::{
    20 use crate::{
    21     core::{server::HwServer, types::ClientId},
    21     core::{server::HwServer, types::ClientId},
    22     handlers,
    22     handlers,
    23     protocol::{messages::*, ProtocolDecoder},
    23     handlers::{IoResult, IoTask},
       
    24     protocol::{messages::*, messages::HwServerMessage::Redirect, ProtocolDecoder},
    24     utils,
    25     utils,
    25 };
    26 };
    26 
    27 
    27 #[cfg(feature = "official-server")]
    28 #[cfg(feature = "official-server")]
    28 use super::io::{IoThread, RequestId};
    29 use super::io::{IoThread, RequestId};
    29 
       
    30 use crate::{
       
    31     handlers::{IoResult, IoTask},
       
    32     protocol::messages::HwServerMessage::Redirect,
       
    33 };
       
    34 
    30 
    35 #[cfg(feature = "tls-connections")]
    31 #[cfg(feature = "tls-connections")]
    36 use openssl::{
    32 use openssl::{
    37     error::ErrorStack,
    33     error::ErrorStack,
    38     ssl::{
    34     ssl::{
   454         }
   450         }
   455         Ok(())
   451         Ok(())
   456     }
   452     }
   457 
   453 
   458     #[cfg(feature = "official-server")]
   454     #[cfg(feature = "official-server")]
   459     pub fn handle_io_result(&mut self) -> io::Result<()> {
   455     pub fn handle_io_result(&mut self, poll: &Poll) -> io::Result<()> {
   460         if let Some((client_id, result)) = self.io.try_recv() {
   456         while let Some((client_id, result)) = self.io.try_recv() {
       
   457             debug!("Handling io result {:?} for client {}", result, client_id);
   461             let mut response = handlers::Response::new(client_id);
   458             let mut response = handlers::Response::new(client_id);
   462             handlers::handle_io_result(&mut self.server, client_id, &mut response, result);
   459             handlers::handle_io_result(&mut self.server, client_id, &mut response, result);
       
   460             self.handle_response(response, poll);
   463         }
   461         }
   464         Ok(())
   462         Ok(())
   465     }
   463     }
   466 
   464 
   467     fn create_client_socket(&self, socket: TcpStream) -> io::Result<ClientSocket> {
   465     fn create_client_socket(&self, socket: TcpStream) -> io::Result<ClientSocket> {