diff --git a/src/connection.rs b/src/connection.rs index 31a9847..82be0a2 100644 --- a/src/connection.rs +++ b/src/connection.rs @@ -86,7 +86,7 @@ impl<'a> Connection { trace!("Packet {} received: {:?}", self.seq.0, packet); self.process(packet)?; - self.seq.0.wrapping_add(1); + self.seq.0 = self.seq.0.wrapping_add(1); } } @@ -107,7 +107,7 @@ impl<'a> Connection { packet.write_to(&mut self.stream)?; } - self.seq.1.wrapping_add(1); + self.seq.1 = self.seq.1.wrapping_add(1); if let Some((_, ref mut mac)) = self.mac { let mut sig = vec![0; mac.size()]; diff --git a/src/server.rs b/src/server.rs index e459f4f..7318de8 100644 --- a/src/server.rs +++ b/src/server.rs @@ -21,27 +21,22 @@ impl Server { } pub fn run(&self) -> io::Result<()> { - let listener = TcpListener::bind( - (&*self.config.host, self.config.port), - ).expect(&*format!( - "sshd: failed to bind to {}:{}", - self.config.as_ref().host, - self.config.as_ref().port - )); + let listener = + TcpListener::bind((&*self.config.host, self.config.port))?; loop { - let (mut stream, addr) = listener.accept().expect(&*format!( - "sshd: failed to establish incoming connection" - )); + let (mut stream, addr) = listener.accept()?; - println!("Incoming connection from {}", addr); + debug!("Incoming connection from {}", addr); + + let mut read_stream = stream.try_clone()?; let mut connection = Connection::new( ConnectionType::Server(self.config.clone()), - Box::new(stream.try_clone().unwrap()), + Box::new(stream), ); - let result = connection.run(&mut stream); + let result = connection.run(&mut read_stream); if let Some(error) = result.err() { println!("sshd: {}", error) }