From 719943aec9f5e7f66563e288c970207cb154d919 Mon Sep 17 00:00:00 2001 From: Konstantin Seiler Date: Thu, 23 Jan 2020 01:24:59 +1100 Subject: [PATCH] Don't panic if spirc terminates prematurely. Instead attempt to reconnect and wait for new client connections. --- src/main.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main.rs b/src/main.rs index fcced12..b965904 100644 --- a/src/main.rs +++ b/src/main.rs @@ -381,6 +381,7 @@ struct Main { connect: Box>, shutdown: bool, + last_credentials: Option, player_event_channel: Option>, player_event_program: Option, @@ -404,6 +405,7 @@ impl Main { spirc: None, spirc_task: None, shutdown: false, + last_credentials: None, signal: Box::new(tokio_signal::ctrl_c().flatten_stream()), player_event_channel: None, @@ -425,6 +427,7 @@ impl Main { } fn credentials(&mut self, credentials: Credentials) { + self.last_credentials = Some(credentials.clone()); let config = self.session_config.clone(); let handle = self.handle.clone(); @@ -502,6 +505,10 @@ impl Future for Main { } else { warn!("Spirc shut down unexpectedly"); self.spirc_task = None; + if let Some(credentials) = self.last_credentials.clone() { + self.credentials(credentials); + progress = true; + } } } }