fn session_event()

in src/core/admin/src/lib.rs [404:441]


    fn session_event(&mut self, event: &Event) {
        let token = event.token();

        if event.is_error() {
            ADMIN_EVENT_ERROR.increment();

            self.close(token);
            return;
        }

        if event.is_writable() {
            ADMIN_EVENT_WRITE.increment();

            if self.write(token).is_err() {
                self.close(token);
                return;
            }
        }

        if event.is_readable() {
            ADMIN_EVENT_READ.increment();

            if self.read(token).is_err() {
                self.close(token);
                return;
            }
        }

        match self.handshake(token) {
            Ok(_) => {}
            Err(e) => match e.kind() {
                ErrorKind::WouldBlock => {}
                _ => {
                    self.close(token);
                }
            },
        }
    }