diff options
author | Jesse Luehrs <doy@tozt.net> | 2019-09-30 09:47:21 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2019-09-30 09:47:21 -0400 |
commit | 92b39033cdaad73296470ca38364e849547b0ff4 (patch) | |
tree | 35b0f7cea24d00dec342f2ea8e32f8604dbd086d /src | |
parent | 7b3f8bcd60cdbbc196c4c1d3190d4bae13d80e0f (diff) | |
download | teleterm-92b39033cdaad73296470ca38364e849547b0ff4.tar.gz teleterm-92b39033cdaad73296470ca38364e849547b0ff4.zip |
fix another case where cast clients could unexpectedly exit
Diffstat (limited to 'src')
-rw-r--r-- | src/cmd/cast.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/cmd/cast.rs b/src/cmd/cast.rs index 8cbbd96..5f8c44a 100644 --- a/src/cmd/cast.rs +++ b/src/cmd/cast.rs @@ -111,6 +111,8 @@ impl CastSession { &Self::poll_write_server, ]; + // this should never return Err, because we don't want server + // communication issues to ever interrupt a running process fn poll_read_client( &mut self, ) -> Result<crate::component_future::Poll<()>> { @@ -120,8 +122,12 @@ impl CastSession { self.sent_remote = 0; Ok(crate::component_future::Poll::DidWork) } - crate::client::Event::ServerMessage(msg) => { - Err(Error::UnexpectedMessage { message: msg }) + crate::client::Event::ServerMessage(..) => { + // we don't expect to ever see a server message once we + // start casting, so if one comes through, assume + // something is messed up and try again + self.client.reconnect(); + Ok(crate::component_future::Poll::DidWork) } }, Ok(futures::Async::Ready(None)) => { |