aboutsummaryrefslogtreecommitdiffstats
path: root/teleterm-web
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-11-22 11:15:45 -0500
committerJesse Luehrs <doy@tozt.net>2019-11-22 11:15:45 -0500
commit5dfabf794891afd558182faeda9023ad3cd29413 (patch)
tree7ba365258fea2970f6d2659956c02a15d7b4529a /teleterm-web
parent365988f9df0c9f1c7d1e297012351efbc1bce8b4 (diff)
downloadteleterm-5dfabf794891afd558182faeda9023ad3cd29413.tar.gz
teleterm-5dfabf794891afd558182faeda9023ad3cd29413.zip
handle streamer disconnects
Diffstat (limited to 'teleterm-web')
-rw-r--r--teleterm-web/src/lib.rs4
-rw-r--r--teleterm-web/src/model.rs4
-rw-r--r--teleterm-web/src/protocol.rs1
3 files changed, 9 insertions, 0 deletions
diff --git a/teleterm-web/src/lib.rs b/teleterm-web/src/lib.rs
index 118ab2f..2ff1514 100644
--- a/teleterm-web/src/lib.rs
+++ b/teleterm-web/src/lib.rs
@@ -62,6 +62,10 @@ fn update(
crate::protocol::Message::TerminalOutput { data } => {
model.process(&data);
}
+ crate::protocol::Message::Disconnected => {
+ model.disconnect_watch();
+ orders.perform_cmd(model.list());
+ }
}
}
ws::WebSocketEvent::Error(e) => {
diff --git a/teleterm-web/src/model.rs b/teleterm-web/src/model.rs
index f83036b..dfaccc8 100644
--- a/teleterm-web/src/model.rs
+++ b/teleterm-web/src/model.rs
@@ -60,6 +60,10 @@ impl Model {
self.watch_conn.is_some()
}
+ pub fn disconnect_watch(&mut self) {
+ self.watch_conn = None;
+ }
+
pub fn process(&mut self, bytes: &[u8]) {
if let Some(conn) = &mut self.watch_conn {
conn.term.process(bytes);
diff --git a/teleterm-web/src/protocol.rs b/teleterm-web/src/protocol.rs
index d9f3a8e..af40891 100644
--- a/teleterm-web/src/protocol.rs
+++ b/teleterm-web/src/protocol.rs
@@ -4,4 +4,5 @@
#[derive(Debug, Clone, PartialEq, Eq, serde::Deserialize)]
pub enum Message {
TerminalOutput { data: Vec<u8> },
+ Disconnected,
}