diff options
author | Jesse Luehrs <doy@tozt.net> | 2019-11-27 11:07:12 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2019-11-27 11:07:12 -0500 |
commit | a7b13be27b7398c84296ef82ba60b7a441a3fb0f (patch) | |
tree | e8810007567e901e488a9534e0433190d58d2ddf /teleterm/src/web/list.rs | |
parent | b89f6fa7be912160f6dd92aad9a63c69ba2c5a2c (diff) | |
download | teleterm-a7b13be27b7398c84296ef82ba60b7a441a3fb0f.tar.gz teleterm-a7b13be27b7398c84296ef82ba60b7a441a3fb0f.zip |
make the web client use raw clients for everything
Diffstat (limited to 'teleterm/src/web/list.rs')
-rw-r--r-- | teleterm/src/web/list.rs | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/teleterm/src/web/list.rs b/teleterm/src/web/list.rs index e35efac..2807b7f 100644 --- a/teleterm/src/web/list.rs +++ b/teleterm/src/web/list.rs @@ -29,8 +29,7 @@ pub fn run( .context(crate::error::Connect { address }), ) }); - let client = - crate::client::Client::list("teleterm-web", connector, &auth); + let client = crate::client::Client::raw("teleterm-web", connector, auth); let (w_sessions, r_sessions) = tokio::sync::oneshot::channel(); @@ -95,6 +94,11 @@ impl<S: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + 'static> crate::protocol::Message::Error { msg } => { Some(Err(Error::Server { message: msg })) } + crate::protocol::Message::LoggedIn { .. } => { + self.client + .send_message(crate::protocol::Message::list_sessions()); + None + } msg => Some(Err(crate::error::Error::UnexpectedMessage { message: msg, })), @@ -116,21 +120,13 @@ impl<S: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + 'static> fn poll_client(&mut self) -> component_future::Poll<(), Error> { match component_future::try_ready!(self.client.poll()).unwrap() { - crate::client::Event::Disconnect => { - let res = Err(Error::ServerDisconnected); - self.w_sessions.take().unwrap().send(res).unwrap(); - return Ok(component_future::Async::Ready(())); - } - crate::client::Event::Connect => { - self.client - .send_message(crate::protocol::Message::list_sessions()); - } crate::client::Event::ServerMessage(msg) => { if let Some(res) = self.server_message(msg) { self.w_sessions.take().unwrap().send(res).unwrap(); return Ok(component_future::Async::Ready(())); } } + _ => unreachable!(), } Ok(component_future::Async::DidWork) } |