feat: v0.3.1, fix panic

This commit is contained in:
2022-08-26 00:33:40 +08:00
parent 3037464c03
commit 9fbc498615
3 changed files with 26 additions and 5 deletions

2
Cargo.lock generated
View File

@@ -718,7 +718,7 @@ dependencies = [
[[package]] [[package]]
name = "simple-rust-http3-proxy" name = "simple-rust-http3-proxy"
version = "0.3.0" version = "0.3.1"
dependencies = [ dependencies = [
"clap", "clap",
"deser-hjson", "deser-hjson",

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "simple-rust-http3-proxy" name = "simple-rust-http3-proxy"
version = "0.3.0" version = "0.3.1"
edition = "2021" edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View File

@@ -69,9 +69,30 @@ pub async fn run(listen_config: &ListenConfig) -> XResult<()> {
let endpoint = endpoint_opt.as_mut().unwrap(); let endpoint = endpoint_opt.as_mut().unwrap();
let connect = endpoint.connect(addr, &server_name).unwrap(); let connect = match endpoint.connect(addr, &server_name) {
let quinn::NewConnection { connection, .. } = connect.await.unwrap(); Ok(connect) => connect,
let (send, recv) = connection.open_bi().await.unwrap(); Err(e) => {
failure!("Connect failed: {:?}", e);
endpoint_opt = None;
continue;
}
};
let quinn::NewConnection { connection, .. } = match connect.await {
Ok(connection) => connection,
Err(e) => {
failure!("Connect failed: {:?}", e);
endpoint_opt = None;
continue;
}
};
let (send, recv) = match connection.open_bi().await {
Ok(stream) => stream,
Err(e) => {
failure!("Connect failed: {:?}", e);
endpoint_opt = None;
continue;
}
};
let remote_addr = format!("{}", connection.remote_address()); let remote_addr = format!("{}", connection.remote_address());
let local_addr = connection.local_ip().map(|ip| format!("{}", ip)).unwrap_or_else(|| "".to_string()); let local_addr = connection.local_ip().map(|ip| format!("{}", ip)).unwrap_or_else(|| "".to_string());
tokio::spawn(async move { tokio::spawn(async move {