update port-forward

1. fix multi remote port override.
2. add connection.rs port-forward failed to close
This commit is contained in:
csf
2022-08-29 19:45:06 +08:00
parent 37617fa888
commit fcc62febb1
4 changed files with 14 additions and 6 deletions

View File

@@ -1,3 +1,5 @@
use std::sync::{Arc, RwLock};
use crate::client::*;
use hbb_common::{
allow_err, bail,
@@ -48,6 +50,9 @@ pub async fn listen(
ui_receiver: mpsc::UnboundedReceiver<Data>,
key: &str,
token: &str,
lc: Arc<RwLock<LoginConfigHandler>>,
remote_host: String,
remote_port: i32,
) -> ResultType<()> {
let listener = tcp::new_listener(format!("0.0.0.0:{}", port), true).await?;
let addr = listener.local_addr()?;
@@ -61,6 +66,7 @@ pub async fn listen(
tokio::select! {
Ok((forward, addr)) = listener.accept() => {
log::info!("new connection from {:?}", addr);
lc.write().unwrap().port_forward = (remote_host.clone(), remote_port);
let id = id.clone();
let password = password.clone();
let mut forward = Framed::new(forward, BytesCodec::new());