mirror of
https://github.com/Stremio/stremio-shell-ng.git
synced 2026-05-12 01:00:32 +00:00
fix: fall through to self-launch when peer forward fails
After PipeClient::connect succeeds, write_all(...).ok() ignored failure and unconditionally exit(0). If the peer instance died between connect and write the user command was silently dropped and no shell launched. Treat a failed write as a reason to launch this process: only exit when the command was successfully forwarded (write + flush). Otherwise log the failure and fall through to the regular launch path. Closes #45
This commit is contained in:
parent
bbbe882faf
commit
da72eb70a1
1 changed files with 9 additions and 2 deletions
11
src/main.rs
11
src/main.rs
|
|
@ -88,8 +88,15 @@ fn main() {
|
|||
commands_path.push_str(&username());
|
||||
let socket_path = Path::new(&commands_path);
|
||||
if let Ok(mut stream) = PipeClient::connect(socket_path) {
|
||||
stream.write_all(command.as_bytes()).ok();
|
||||
exit(0);
|
||||
let forwarded = stream
|
||||
.write_all(command.as_bytes())
|
||||
.and_then(|_| stream.flush())
|
||||
.is_ok();
|
||||
drop(stream);
|
||||
if forwarded {
|
||||
exit(0);
|
||||
}
|
||||
eprintln!("Failed to forward command to existing Stremio instance; launching new instance");
|
||||
}
|
||||
// END IPC
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue