diff --git a/installer/src/tplink.rs b/installer/src/tplink.rs index faac84a..f4c5a37 100644 --- a/installer/src/tplink.rs +++ b/installer/src/tplink.rs @@ -295,6 +295,16 @@ async fn handler(state: State, mut req: Request) -> Result Result<(), Error> { + let addr = SocketAddr::from_str(&format!("{admin_ip}:23")).unwrap(); + + if telnet_send_command(addr, "true", "exit code 0", true) + .await + .is_ok() + { + println!("telnet already appears to be running"); + return Ok(()); + } + let client: HttpProxyClient = hyper_util::client::legacy::Client::<(), ()>::builder(TokioExecutor::new()) .build(HttpConnector::new()); @@ -316,8 +326,6 @@ async fn tplink_launch_telnet_v5(admin_ip: &str) -> Result<(), Error> { let handle = tokio::spawn(async move { axum::serve(listener, app).await }); - let addr = SocketAddr::from_str(&format!("{admin_ip}:23")).unwrap(); - while telnet_send_command(addr, "true", "exit code 0", true) .await .is_err()