aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-11-23 12:19:45 -0500
committerJesse Luehrs <doy@tozt.net>2019-11-23 12:19:45 -0500
commit263e3e0255d14e0c8ab1e09d7721866cdef4a6a4 (patch)
tree0fb6b8a3516b24ce16ecb925c87677d2394b76cf
parentfd9625037549f7047e35cef37a2f93630e7121e5 (diff)
downloadteleterm-263e3e0255d14e0c8ab1e09d7721866cdef4a6a4.tar.gz
teleterm-263e3e0255d14e0c8ab1e09d7721866cdef4a6a4.zip
stop hardcoding the list and watch urls
-rw-r--r--teleterm-web/src/config.rs1
-rw-r--r--teleterm-web/src/model.rs17
-rw-r--r--teleterm/src/cmd/web.rs1
-rw-r--r--teleterm/src/config.rs25
-rw-r--r--teleterm/src/web.rs3
-rw-r--r--teleterm/static/teleterm_web.js135
-rw-r--r--teleterm/static/teleterm_web_bg.wasmbin703802 -> 705767 bytes
7 files changed, 104 insertions, 78 deletions
diff --git a/teleterm-web/src/config.rs b/teleterm-web/src/config.rs
index c6dbc50..d9308de 100644
--- a/teleterm-web/src/config.rs
+++ b/teleterm-web/src/config.rs
@@ -9,6 +9,7 @@ extern "C" {
#[derive(Clone, Debug, serde::Deserialize)]
pub(crate) struct Config {
pub(crate) title: String,
+ pub(crate) public_address: String,
}
impl Config {
diff --git a/teleterm-web/src/model.rs b/teleterm-web/src/model.rs
index 1ba1f40..e4919e4 100644
--- a/teleterm-web/src/model.rs
+++ b/teleterm-web/src/model.rs
@@ -1,8 +1,5 @@
use crate::prelude::*;
-const LIST_URL: &str = "http://127.0.0.1:4145/list";
-const WATCH_URL: &str = "ws://127.0.0.1:4145/watch";
-
struct WatchConn {
ws: WebSocket,
term: vt100::Parser,
@@ -47,9 +44,10 @@ impl Model {
},
crate::Msg::Refresh => {
log::debug!("refreshing");
+ let url =
+ format!("http://{}/list", self.config.public_address);
orders.perform_cmd(
- seed::Request::new(LIST_URL)
- .fetch_json_data(crate::Msg::List),
+ seed::Request::new(url).fetch_json_data(crate::Msg::List),
);
}
crate::Msg::StartWatching(id) => {
@@ -116,12 +114,9 @@ impl Model {
}
fn watch(&mut self, id: &str, orders: &mut impl Orders<crate::Msg>) {
- let ws = crate::ws::connect(
- &format!("{}?id={}", WATCH_URL, id),
- id,
- crate::Msg::Watch,
- orders,
- );
+ let url =
+ format!("ws://{}/watch?id={}", self.config.public_address, id);
+ let ws = crate::ws::connect(&url, id, crate::Msg::Watch, orders);
let term = vt100::Parser::default();
self.watch_conn = Some(WatchConn {
ws,
diff --git a/teleterm/src/cmd/web.rs b/teleterm/src/cmd/web.rs
index 37f2f70..0ec1daa 100644
--- a/teleterm/src/cmd/web.rs
+++ b/teleterm/src/cmd/web.rs
@@ -19,6 +19,7 @@ impl crate::config::Config for Config {
) -> Box<dyn futures::Future<Item = (), Error = Error> + Send> {
Box::new(crate::web::Server::new(
self.web.listen_address,
+ self.web.public_address.clone(),
self.web.server_address.clone(),
))
}
diff --git a/teleterm/src/config.rs b/teleterm/src/config.rs
index 390ee4c..6dd18b9 100644
--- a/teleterm/src/config.rs
+++ b/teleterm/src/config.rs
@@ -18,6 +18,7 @@ const LOGIN_RECURSE_CENTER_OPTION: &str = "login-recurse-center";
const MAX_FRAME_LENGTH_OPTION: &str = "max-frame-length";
const PLAY_AT_START_OPTION: &str = "play-at-start";
const PLAYBACK_RATIO_OPTION: &str = "playback-ratio";
+const PUBLIC_ADDRESS_OPTION: &str = "public-address";
const READ_TIMEOUT_OPTION: &str = "read-timeout-secs";
const SERVER_ADDRESS_OPTION: &str = "server-address";
const TLS_IDENTITY_FILE_OPTION: &str = "tls-identity-file";
@@ -561,6 +562,9 @@ pub struct Web {
)]
pub listen_address: std::net::SocketAddr,
+ #[serde(default = "default_web_public_address")]
+ pub public_address: String,
+
#[serde(
deserialize_with = "connect_address",
default = "default_connect_address"
@@ -572,6 +576,8 @@ impl Web {
pub fn cmd<'a, 'b>(app: clap::App<'a, 'b>) -> clap::App<'a, 'b> {
let listen_address_help =
"Host and port to listen on (defaults to localhost:4145)";
+ let public_address_help =
+ "Host and port that the web server will be publicly available on (defaults to the listen address)";
let server_address_help =
"Host and port of the teleterm server (defaults to localhost:4144)";
app.arg(
@@ -582,6 +588,13 @@ impl Web {
.help(listen_address_help),
)
.arg(
+ clap::Arg::with_name(PUBLIC_ADDRESS_OPTION)
+ .long(PUBLIC_ADDRESS_OPTION)
+ .takes_value(true)
+ .value_name("HOST:PORT")
+ .help(public_address_help),
+ )
+ .arg(
clap::Arg::with_name(SERVER_ADDRESS_OPTION)
.long(SERVER_ADDRESS_OPTION)
.takes_value(true)
@@ -601,6 +614,13 @@ impl Web {
.parse()
.context(crate::error::ParseAddr)?;
}
+ if matches.is_present(PUBLIC_ADDRESS_OPTION) {
+ self.public_address =
+ matches.value_of(PUBLIC_ADDRESS_OPTION).unwrap().to_string();
+ } else if matches.is_present(LISTEN_ADDRESS_OPTION) {
+ self.public_address =
+ matches.value_of(LISTEN_ADDRESS_OPTION).unwrap().to_string();
+ }
if matches.is_present(SERVER_ADDRESS_OPTION) {
let address = matches.value_of(SERVER_ADDRESS_OPTION).unwrap();
self.server_address = to_connect_address(address)?;
@@ -613,6 +633,7 @@ impl Default for Web {
fn default() -> Self {
Self {
listen_address: default_web_listen_address(),
+ public_address: default_web_public_address(),
server_address: default_connect_address(),
}
}
@@ -622,6 +643,10 @@ fn default_web_listen_address() -> std::net::SocketAddr {
to_listen_address(DEFAULT_WEB_LISTEN_ADDRESS).unwrap()
}
+fn default_web_public_address() -> String {
+ DEFAULT_WEB_LISTEN_ADDRESS.to_string()
+}
+
#[derive(serde::Deserialize, Debug)]
pub struct Command {
#[serde(default = "default_command")]
diff --git a/teleterm/src/web.rs b/teleterm/src/web.rs
index 991f543..992b79d 100644
--- a/teleterm/src/web.rs
+++ b/teleterm/src/web.rs
@@ -12,6 +12,7 @@ use gotham::state::FromState as _;
struct Config {
title: String,
server_address: (String, std::net::SocketAddr),
+ public_address: String,
}
pub struct Server {
@@ -21,11 +22,13 @@ pub struct Server {
impl Server {
pub fn new(
listen_address: std::net::SocketAddr,
+ public_address: String,
server_address: (String, std::net::SocketAddr),
) -> Self {
let data = Config {
title: "teleterm".to_string(),
server_address,
+ public_address,
};
Self {
server: Box::new(gotham::init_server(
diff --git a/teleterm/static/teleterm_web.js b/teleterm/static/teleterm_web.js
index d5bddf8..3fc5227 100644
--- a/teleterm/static/teleterm_web.js
+++ b/teleterm/static/teleterm_web.js
@@ -1,6 +1,10 @@
let wasm;
+function __wbg_elem_binding0(arg0, arg1, arg2) {
+ wasm.__wbg_function_table.get(51)(arg0, arg1, arg2);
+}
+
const heap = new Array(32);
heap.fill(undefined);
@@ -17,27 +21,24 @@ function addHeapObject(obj) {
heap[idx] = obj;
return idx;
}
-function __wbg_elem_binding0(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(62)(arg0, arg1, addHeapObject(arg2));
-}
function __wbg_elem_binding1(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(62)(arg0, arg1, addHeapObject(arg2));
+ wasm.__wbg_function_table.get(52)(arg0, arg1, addHeapObject(arg2));
}
function __wbg_elem_binding2(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(61)(arg0, arg1, arg2);
+ wasm.__wbg_function_table.get(52)(arg0, arg1, addHeapObject(arg2));
}
function __wbg_elem_binding3(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(62)(arg0, arg1, addHeapObject(arg2));
+ wasm.__wbg_function_table.get(52)(arg0, arg1, addHeapObject(arg2));
}
function __wbg_elem_binding4(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(62)(arg0, arg1, addHeapObject(arg2));
-}
-function __wbg_elem_binding5(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(62)(arg0, arg1, addHeapObject(arg2));
+ wasm.__wbg_function_table.get(52)(arg0, arg1, addHeapObject(arg2));
}
-function __wbg_elem_binding6(arg0, arg1) {
+function __wbg_elem_binding5(arg0, arg1) {
wasm.__wbg_function_table.get(31)(arg0, arg1);
}
+function __wbg_elem_binding6(arg0, arg1, arg2) {
+ wasm.__wbg_function_table.get(52)(arg0, arg1, addHeapObject(arg2));
+}
function __wbg_elem_binding7(arg0, arg1, arg2, arg3, arg4) {
wasm.__wbg_function_table.get(17)(arg0, arg1, addHeapObject(arg2), arg3, addHeapObject(arg4));
}
@@ -506,41 +507,23 @@ function init(module) {
imports.wbg.__widl_f_abort_AbortController = function(arg0) {
getObject(arg0).abort();
};
- imports.wbg.__widl_f_new_AbortController = function() {
+ imports.wbg.__widl_f_error_1_ = function(arg0) {
+ console.error(getObject(arg0));
+ };
+ imports.wbg.__widl_f_add_event_listener_with_callback_EventTarget = function(arg0, arg1, arg2, arg3) {
try {
- const ret = new AbortController();
- return addHeapObject(ret);
+ getObject(arg0).addEventListener(getStringFromWasm(arg1, arg2), getObject(arg3));
} catch (e) {
handleError(e)
}
};
- imports.wbg.__widl_f_new_WebSocket = function(arg0, arg1) {
+ imports.wbg.__widl_f_remove_event_listener_with_callback_EventTarget = function(arg0, arg1, arg2, arg3) {
try {
- const ret = new WebSocket(getStringFromWasm(arg0, arg1));
- return addHeapObject(ret);
+ getObject(arg0).removeEventListener(getStringFromWasm(arg1, arg2), getObject(arg3));
} catch (e) {
handleError(e)
}
};
- imports.wbg.__widl_f_set_onopen_WebSocket = function(arg0, arg1) {
- getObject(arg0).onopen = getObject(arg1);
- };
- imports.wbg.__wbindgen_cb_forget = function(arg0) {
- takeObject(arg0);
- };
- imports.wbg.__widl_f_set_onclose_WebSocket = function(arg0, arg1) {
- getObject(arg0).onclose = getObject(arg1);
- };
- imports.wbg.__widl_f_set_onmessage_WebSocket = function(arg0, arg1) {
- getObject(arg0).onmessage = getObject(arg1);
- };
- imports.wbg.__widl_f_set_onerror_WebSocket = function(arg0, arg1) {
- getObject(arg0).onerror = getObject(arg1);
- };
- imports.wbg.__widl_f_data_MessageEvent = function(arg0) {
- const ret = getObject(arg0).data;
- return addHeapObject(ret);
- };
imports.wbg.__widl_f_close_WebSocket = function(arg0) {
try {
getObject(arg0).close();
@@ -575,13 +558,6 @@ function init(module) {
handleError(e)
}
};
- imports.wbg.__widl_f_add_event_listener_with_callback_EventTarget = function(arg0, arg1, arg2, arg3) {
- try {
- getObject(arg0).addEventListener(getStringFromWasm(arg1, arg2), getObject(arg3));
- } catch (e) {
- handleError(e)
- }
- };
imports.wbg.__wbg_resolve_04ca3cb0d333a4f0 = function(arg0) {
const ret = Promise.resolve(getObject(arg0));
return addHeapObject(ret);
@@ -773,16 +749,6 @@ function init(module) {
handleError(e)
}
};
- imports.wbg.__widl_f_error_1_ = function(arg0) {
- console.error(getObject(arg0));
- };
- imports.wbg.__widl_f_remove_event_listener_with_callback_EventTarget = function(arg0, arg1, arg2, arg3) {
- try {
- getObject(arg0).removeEventListener(getStringFromWasm(arg1, arg2), getObject(arg3));
- } catch (e) {
- handleError(e)
- }
- };
imports.wbg.__widl_f_query_selector_Document = function(arg0, arg1, arg2) {
try {
const ret = getObject(arg0).querySelector(getStringFromWasm(arg1, arg2));
@@ -795,6 +761,41 @@ function init(module) {
const ret = getObject(arg0).getElementById(getStringFromWasm(arg1, arg2));
return isLikeNone(ret) ? 0 : addHeapObject(ret);
};
+ imports.wbg.__wbindgen_cb_forget = function(arg0) {
+ takeObject(arg0);
+ };
+ imports.wbg.__widl_f_new_AbortController = function() {
+ try {
+ const ret = new AbortController();
+ return addHeapObject(ret);
+ } catch (e) {
+ handleError(e)
+ }
+ };
+ imports.wbg.__widl_f_new_WebSocket = function(arg0, arg1) {
+ try {
+ const ret = new WebSocket(getStringFromWasm(arg0, arg1));
+ return addHeapObject(ret);
+ } catch (e) {
+ handleError(e)
+ }
+ };
+ imports.wbg.__widl_f_set_onopen_WebSocket = function(arg0, arg1) {
+ getObject(arg0).onopen = getObject(arg1);
+ };
+ imports.wbg.__widl_f_set_onclose_WebSocket = function(arg0, arg1) {
+ getObject(arg0).onclose = getObject(arg1);
+ };
+ imports.wbg.__widl_f_set_onmessage_WebSocket = function(arg0, arg1) {
+ getObject(arg0).onmessage = getObject(arg1);
+ };
+ imports.wbg.__widl_f_set_onerror_WebSocket = function(arg0, arg1) {
+ getObject(arg0).onerror = getObject(arg1);
+ };
+ imports.wbg.__widl_f_data_MessageEvent = function(arg0) {
+ const ret = getObject(arg0).data;
+ return addHeapObject(ret);
+ };
imports.wbg.__wbindgen_throw = function(arg0, arg1) {
throw new Error(getStringFromWasm(arg0, arg1));
};
@@ -896,14 +897,14 @@ function init(module) {
imports.wbg.__widl_f_warn_1_ = function(arg0) {
console.warn(getObject(arg0));
};
- imports.wbg.__wbindgen_closure_wrapper673 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper791 = 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_binding3(a, state.b, arg0);
} finally {
if (--state.cnt === 0) wasm.__wbg_function_table.get(32)(a, state.b);
else state.a = a;
@@ -914,14 +915,14 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper603 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper694 = 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_binding5(a, state.b, arg0);
+ return __wbg_elem_binding2(a, state.b, arg0);
} finally {
if (--state.cnt === 0) wasm.__wbg_function_table.get(32)(a, state.b);
else state.a = a;
@@ -932,14 +933,14 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper794 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper683 = 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_binding1(a, state.b, arg0);
+ return __wbg_elem_binding6(a, state.b, arg0);
} finally {
if (--state.cnt === 0) wasm.__wbg_function_table.get(32)(a, state.b);
else state.a = a;
@@ -950,14 +951,14 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper665 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper612 = 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_binding4(a, state.b, arg0);
} finally {
if (--state.cnt === 0) wasm.__wbg_function_table.get(32)(a, state.b);
else state.a = a;
@@ -968,14 +969,14 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper506 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper508 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
const real = () => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding6(a, state.b, );
+ return __wbg_elem_binding5(a, state.b, );
} finally {
if (--state.cnt === 0) wasm.__wbg_function_table.get(32)(a, state.b);
else state.a = a;
@@ -986,14 +987,14 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper604 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper670 = 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_binding0(a, state.b, arg0);
} finally {
if (--state.cnt === 0) wasm.__wbg_function_table.get(32)(a, state.b);
else state.a = a;
@@ -1004,14 +1005,14 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper605 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper691 = 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_binding1(a, state.b, arg0);
} finally {
if (--state.cnt === 0) wasm.__wbg_function_table.get(32)(a, state.b);
else state.a = a;
diff --git a/teleterm/static/teleterm_web_bg.wasm b/teleterm/static/teleterm_web_bg.wasm
index dc787ef..668c78b 100644
--- a/teleterm/static/teleterm_web_bg.wasm
+++ b/teleterm/static/teleterm_web_bg.wasm
Binary files differ