aboutsummaryrefslogtreecommitdiffstats
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
parent365988f9df0c9f1c7d1e297012351efbc1bce8b4 (diff)
downloadteleterm-5dfabf794891afd558182faeda9023ad3cd29413.tar.gz
teleterm-5dfabf794891afd558182faeda9023ad3cd29413.zip
handle streamer disconnects
-rw-r--r--teleterm-web/src/lib.rs4
-rw-r--r--teleterm-web/src/model.rs4
-rw-r--r--teleterm-web/src/protocol.rs1
-rw-r--r--teleterm/src/web.rs5
-rw-r--r--teleterm/static/teleterm_web.js68
-rw-r--r--teleterm/static/teleterm_web_bg.wasmbin673461 -> 675320 bytes
6 files changed, 48 insertions, 34 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,
}
diff --git a/teleterm/src/web.rs b/teleterm/src/web.rs
index c1e0e18..b01480d 100644
--- a/teleterm/src/web.rs
+++ b/teleterm/src/web.rs
@@ -377,6 +377,11 @@ impl<S: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + 'static>
.context(crate::error::SerializeMessage)?;
Ok(Some(tungstenite::Message::Text(json)))
}
+ crate::protocol::Message::Disconnected => {
+ let json = serde_json::to_string(msg)
+ .context(crate::error::SerializeMessage)?;
+ Ok(Some(tungstenite::Message::Text(json)))
+ }
_ => Ok(None),
}
}
diff --git a/teleterm/static/teleterm_web.js b/teleterm/static/teleterm_web.js
index 83f0d90..c8d3f28 100644
--- a/teleterm/static/teleterm_web.js
+++ b/teleterm/static/teleterm_web.js
@@ -18,31 +18,31 @@ function addHeapObject(obj) {
return idx;
}
function __wbg_elem_binding0(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(55)(arg0, arg1, addHeapObject(arg2));
+ wasm.__wbg_function_table.get(56)(arg0, arg1, addHeapObject(arg2));
}
-function __wbg_elem_binding1(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(55)(arg0, arg1, addHeapObject(arg2));
+function __wbg_elem_binding1(arg0, arg1) {
+ wasm.__wbg_function_table.get(221)(arg0, arg1);
}
function __wbg_elem_binding2(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(55)(arg0, arg1, addHeapObject(arg2));
+ wasm.__wbg_function_table.get(291)(arg0, arg1, addHeapObject(arg2));
}
function __wbg_elem_binding3(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(59)(arg0, arg1, arg2);
+ wasm.__wbg_function_table.get(60)(arg0, arg1, arg2);
}
function __wbg_elem_binding4(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(55)(arg0, arg1, addHeapObject(arg2));
+ wasm.__wbg_function_table.get(56)(arg0, arg1, addHeapObject(arg2));
}
-function __wbg_elem_binding5(arg0, arg1) {
- wasm.__wbg_function_table.get(218)(arg0, arg1);
+function __wbg_elem_binding5(arg0, arg1, arg2) {
+ wasm.__wbg_function_table.get(56)(arg0, arg1, addHeapObject(arg2));
}
function __wbg_elem_binding6(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(288)(arg0, arg1, addHeapObject(arg2));
+ wasm.__wbg_function_table.get(56)(arg0, arg1, addHeapObject(arg2));
}
function __wbg_elem_binding7(arg0, arg1, arg2, arg3, arg4) {
- wasm.__wbg_function_table.get(315)(arg0, arg1, addHeapObject(arg2), arg3, addHeapObject(arg4));
+ wasm.__wbg_function_table.get(318)(arg0, arg1, addHeapObject(arg2), arg3, addHeapObject(arg4));
}
function __wbg_elem_binding8(arg0, arg1, arg2, arg3) {
- wasm.__wbg_function_table.get(319)(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
+ wasm.__wbg_function_table.get(322)(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
}
/**
*/
@@ -884,16 +884,16 @@ function init(module) {
imports.wbg.__wbindgen_throw = function(arg0, arg1) {
throw new Error(getStringFromWasm(arg0, arg1));
};
- imports.wbg.__wbindgen_closure_wrapper252 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper618 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
- const real = (arg0) => {
+ const real = () => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding1(a, state.b, arg0);
+ return __wbg_elem_binding1(a, state.b, );
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(56)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(222)(a, state.b);
else state.a = a;
}
}
@@ -902,16 +902,16 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper254 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper241 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding4(a, state.b, arg0);
+ return __wbg_elem_binding3(a, state.b, arg0);
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(56)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(57)(a, state.b);
else state.a = a;
}
}
@@ -920,16 +920,16 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper246 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper243 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding2(a, state.b, arg0);
+ return __wbg_elem_binding4(a, state.b, arg0);
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(56)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(57)(a, state.b);
else state.a = a;
}
}
@@ -938,16 +938,16 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper615 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper239 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
- const real = () => {
+ const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding5(a, state.b, );
+ return __wbg_elem_binding0(a, state.b, arg0);
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(219)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(57)(a, state.b);
else state.a = a;
}
}
@@ -956,16 +956,16 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper1026 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper1029 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding6(a, state.b, arg0);
+ return __wbg_elem_binding2(a, state.b, arg0);
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(289)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(292)(a, state.b);
else state.a = a;
}
}
@@ -974,16 +974,16 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper250 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper247 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding0(a, state.b, arg0);
+ return __wbg_elem_binding5(a, state.b, arg0);
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(56)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(57)(a, state.b);
else state.a = a;
}
}
@@ -992,16 +992,16 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper248 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper245 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding3(a, state.b, arg0);
+ return __wbg_elem_binding6(a, state.b, arg0);
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(56)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(57)(a, state.b);
else state.a = a;
}
}
diff --git a/teleterm/static/teleterm_web_bg.wasm b/teleterm/static/teleterm_web_bg.wasm
index f90031f..3f66d8e 100644
--- a/teleterm/static/teleterm_web_bg.wasm
+++ b/teleterm/static/teleterm_web_bg.wasm
Binary files differ