aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernd Schoolmann <mail@quexten.com>2023-04-17 03:19:40 +0200
committerBernd Schoolmann <mail@quexten.com>2023-04-17 03:19:40 +0200
commit7c77e2b47cee8bcda3bbe87af8979b6880356acd (patch)
treefc81598f2f2a62f25d5fec99484b33907214ba15
parente49ca91ea1607a39257fc28b58598482eff4338a (diff)
downloadrbw-7c77e2b47cee8bcda3bbe87af8979b6880356acd.tar.gz
rbw-7c77e2b47cee8bcda3bbe87af8979b6880356acd.zip
Improve websocket disconnect handling
-rw-r--r--src/bin/rbw-agent/notifications.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/bin/rbw-agent/notifications.rs b/src/bin/rbw-agent/notifications.rs
index ab24c42..334466f 100644
--- a/src/bin/rbw-agent/notifications.rs
+++ b/src/bin/rbw-agent/notifications.rs
@@ -82,7 +82,7 @@ impl NotificationsHandler {
}
pub fn is_connected(&self) -> bool {
- self.write.is_some()
+ self.write.is_some() && self.read_handle.is_some() && !self.read_handle.as_ref().unwrap().is_finished()
}
pub async fn disconnect(&mut self) -> Result<(), Box<dyn std::error::Error>> {
@@ -92,6 +92,8 @@ impl NotificationsHandler {
write.close().await?;
self.read_handle.take().unwrap().await?;
}
+ self.write = None;
+ self.read_handle = None;
Ok(())
}