diff options
author | Jesse Luehrs <doy@tozt.net> | 2019-10-09 14:39:37 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2019-10-09 14:39:37 -0400 |
commit | d07178d9fff5cb5af2c9308557ce46350ca7d547 (patch) | |
tree | 937b373ed3f347aa493dc8218091036d8c52346c /src/cmd/watch.rs | |
parent | 0897f33b963903f9b56b4488d45e6828f5b871cf (diff) | |
download | teleterm-d07178d9fff5cb5af2c9308557ce46350ca7d547.tar.gz teleterm-d07178d9fff5cb5af2c9308557ce46350ca7d547.zip |
ensure server errors are displayed when watching
Diffstat (limited to 'src/cmd/watch.rs')
-rw-r--r-- | src/cmd/watch.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/cmd/watch.rs b/src/cmd/watch.rs index ecdf04f..94891e6 100644 --- a/src/cmd/watch.rs +++ b/src/cmd/watch.rs @@ -242,6 +242,12 @@ impl WatchSession { )?; self.needs_redraw = true; } + crate::protocol::Message::Disconnected => { + self.reconnect(true)?; + } + crate::protocol::Message::Error { msg } => { + return Err(Error::Server { message: msg }); + } msg => { return Err(crate::error::Error::UnexpectedMessage { message: msg, @@ -631,7 +637,10 @@ impl futures::future::Future for WatchSession { ); } let res = crate::component_future::poll_future(self, Self::POLL_FNS); - if self.needs_redraw { + if res.is_err() { + self.state = State::Temporary; // drop alternate screen + self.raw_screen = None; + } else if self.needs_redraw { self.redraw()?; self.needs_redraw = false; } |