diff options
| author | David Lönnhager <david.l@mullvad.net> | 2024-08-26 16:35:24 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2024-09-02 12:05:22 +0200 |
| commit | 338d082e03d2b12f28aec3f71ea13e387090ec09 (patch) | |
| tree | 2a6d8dfadd0bd0cc42602134e7b6128f9d464a93 | |
| parent | 8a837bafef777546387b2eb2b81e59b38e60e3d8 (diff) | |
| download | mullvadvpn-338d082e03d2b12f28aec3f71ea13e387090ec09.tar.xz mullvadvpn-338d082e03d2b12f28aec3f71ea13e387090ec09.zip | |
Fix panic caused by join handle being awaited twice
| -rw-r--r-- | tunnel-obfuscation/src/shadowsocks.rs | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/tunnel-obfuscation/src/shadowsocks.rs b/tunnel-obfuscation/src/shadowsocks.rs index eb56a3a63c..f40ee9d92a 100644 --- a/tunnel-obfuscation/src/shadowsocks.rs +++ b/tunnel-obfuscation/src/shadowsocks.rs @@ -115,9 +115,7 @@ async fn run_obfuscation( } client.abort(); - let _ = client.await; server.abort(); - let _ = server.await; Ok(()) } @@ -228,10 +226,11 @@ impl Obfuscator for Shadowsocks { } async fn run(self: Box<Self>) -> crate::Result<()> { - self.server - .await - .expect("server handle panicked") - .map_err(crate::Error::RunShadowsocksObfuscator) + match self.server.await { + Ok(result) => result.map_err(crate::Error::RunShadowsocksObfuscator), + Err(_err) if _err.is_cancelled() => Ok(()), + Err(_err) => panic!("server handle panicked"), + } } #[cfg(target_os = "android")] |
