aboutsummaryrefslogtreecommitdiffstats
path: root/src/sessions.rs
diff options
context:
space:
mode:
authorJae-Heon Ji <32578710+jaeheonji@users.noreply.github.com>2022-02-23 23:50:49 +0900
committerGitHub <noreply@github.com>2022-02-23 23:50:49 +0900
commita489194b55817b68213618fa81718b7beae9eba0 (patch)
tree0cf7c6182028583e81b7cdcd69479274c4cbb819 /src/sessions.rs
parentchore(version): bump development version (diff)
downloadsl0ppij-a489194b55817b68213618fa81718b7beae9eba0.tar.gz
sl0ppij-a489194b55817b68213618fa81718b7beae9eba0.tar.xz
sl0ppij-a489194b55817b68213618fa81718b7beae9eba0.zip
fix: invalid assignment of `client_id` (#1052)
* feat: sync socket connection in * chore: apply clippy * chore: change message name
Diffstat (limited to 'src/sessions.rs')
-rw-r--r--src/sessions.rs12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/sessions.rs b/src/sessions.rs
index 0cc870a7..d05287e4 100644
--- a/src/sessions.rs
+++ b/src/sessions.rs
@@ -6,7 +6,7 @@ use zellij_utils::{
consts::ZELLIJ_SOCK_DIR,
envs,
interprocess::local_socket::LocalSocketStream,
- ipc::{ClientToServerMsg, IpcSenderWithContext},
+ ipc::{ClientToServerMsg, IpcReceiverWithContext, IpcSenderWithContext, ServerToClientMsg},
};
pub(crate) fn get_sessions() -> Result<Vec<String>, io::ErrorKind> {
@@ -56,14 +56,18 @@ fn assert_socket(name: &str) -> bool {
let path = &*ZELLIJ_SOCK_DIR.join(name);
match LocalSocketStream::connect(path) {
Ok(stream) => {
- IpcSenderWithContext::new(stream).send(ClientToServerMsg::ClientExited);
- true
+ let mut sender = IpcSenderWithContext::new(stream);
+ sender.send(ClientToServerMsg::ConnStatus);
+
+ let mut receiver: IpcReceiverWithContext<ServerToClientMsg> = sender.get_receiver();
+ let (instruction, _) = receiver.recv();
+ matches!(instruction, ServerToClientMsg::Connected)
}
Err(e) if e.kind() == io::ErrorKind::ConnectionRefused => {
drop(fs::remove_file(path));
false
}
- Err(_) => true,
+ Err(_) => false,
}
}