From d244551ad89ff2d686f780b21057f5b020ab334b Mon Sep 17 00:00:00 2001 From: Nikos Fazakis Date: Tue, 27 Dec 2022 11:36:53 +0200 Subject: [PATCH 1/5] Mac Wakeup using caffeinate --- src/server.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/server.rs b/src/server.rs index d08dd2672..707557840 100644 --- a/src/server.rs +++ b/src/server.rs @@ -104,6 +104,11 @@ async fn accept_connection_(server: ServerPtr, socket: Stream, secure: bool) -> if let Ok((stream, addr)) = timeout(CONNECT_TIMEOUT, listener.accept()).await? { stream.set_nodelay(true).ok(); let stream_addr = stream.local_addr()?; + if cfg!(target_os = "macos") { + use std::process::Command; + Command::new("/usr/bin/caffeinate").arg("-u").arg("-t 2").output().expect("failed to execute caffeinate"); + println!("wake up macos..."); + } create_tcp_connection(server, Stream::from(stream, stream_addr), addr, secure).await?; } Ok(()) From 43b3a04f33704cf931c5aca5f074cf4dd2caf37e Mon Sep 17 00:00:00 2001 From: Nikos Fazakis Date: Tue, 27 Dec 2022 22:26:37 +0200 Subject: [PATCH 2/5] spawn update --- src/server.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server.rs b/src/server.rs index 707557840..7f9b055dc 100644 --- a/src/server.rs +++ b/src/server.rs @@ -106,7 +106,7 @@ async fn accept_connection_(server: ServerPtr, socket: Stream, secure: bool) -> let stream_addr = stream.local_addr()?; if cfg!(target_os = "macos") { use std::process::Command; - Command::new("/usr/bin/caffeinate").arg("-u").arg("-t 2").output().expect("failed to execute caffeinate"); + Command::new("/usr/bin/caffeinate").arg("-u").arg("-t 5").spawn().expect("failed to execute caffeinate"); println!("wake up macos..."); } create_tcp_connection(server, Stream::from(stream, stream_addr), addr, secure).await?; From f14faa85d239f4760b34da574678171218995467 Mon Sep 17 00:00:00 2001 From: Nikos Fazakis Date: Thu, 29 Dec 2022 14:42:16 +0200 Subject: [PATCH 3/5] fix relay mac connections and cleanup --- src/server.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/server.rs b/src/server.rs index 7f9b055dc..9b5ffd57a 100644 --- a/src/server.rs +++ b/src/server.rs @@ -93,6 +93,14 @@ pub fn new() -> ServerPtr { Arc::new(RwLock::new(server)) } +fn mac_wakeup(){ + #[cfg(target_os = "macos")]{ + use std::process::Command; + Command::new("/usr/bin/caffeinate").arg("-u").arg("-t 5").spawn().expect("failed to execute caffeinate"); + println!("wake up macos"); + } +} + async fn accept_connection_(server: ServerPtr, socket: Stream, secure: bool) -> ResultType<()> { let local_addr = socket.local_addr(); drop(socket); @@ -104,11 +112,7 @@ async fn accept_connection_(server: ServerPtr, socket: Stream, secure: bool) -> if let Ok((stream, addr)) = timeout(CONNECT_TIMEOUT, listener.accept()).await? { stream.set_nodelay(true).ok(); let stream_addr = stream.local_addr()?; - if cfg!(target_os = "macos") { - use std::process::Command; - Command::new("/usr/bin/caffeinate").arg("-u").arg("-t 5").spawn().expect("failed to execute caffeinate"); - println!("wake up macos..."); - } + mac_wakeup(); create_tcp_connection(server, Stream::from(stream, stream_addr), addr, secure).await?; } Ok(()) @@ -257,6 +261,7 @@ async fn create_relay_connection_( ..Default::default() }); stream.send(&msg_out).await?; + mac_wakeup(); create_tcp_connection(server, stream, peer_addr, secure).await?; Ok(()) } From 08278059ac691d0704115c57add3ccf248d034c2 Mon Sep 17 00:00:00 2001 From: Nikos Fazakis Date: Thu, 29 Dec 2022 16:52:45 +0200 Subject: [PATCH 4/5] mac_wakeup resolve panic possibility --- src/server.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server.rs b/src/server.rs index 9b5ffd57a..89a5b9314 100644 --- a/src/server.rs +++ b/src/server.rs @@ -96,8 +96,8 @@ pub fn new() -> ServerPtr { fn mac_wakeup(){ #[cfg(target_os = "macos")]{ use std::process::Command; - Command::new("/usr/bin/caffeinate").arg("-u").arg("-t 5").spawn().expect("failed to execute caffeinate"); - println!("wake up macos"); + Command::new("/usr/bin/caffeinate").arg("-u").arg("-t 5").spawn().ok(); + log::info!("wake up macos"); } } From 944ca510ccde61ecb30d40b923837d6e0d9f9b4f Mon Sep 17 00:00:00 2001 From: Nikos Fazakis Date: Thu, 29 Dec 2022 22:22:16 +0200 Subject: [PATCH 5/5] mac wakeup compact code --- src/server.rs | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/server.rs b/src/server.rs index 89a5b9314..a81684d19 100644 --- a/src/server.rs +++ b/src/server.rs @@ -93,14 +93,6 @@ pub fn new() -> ServerPtr { Arc::new(RwLock::new(server)) } -fn mac_wakeup(){ - #[cfg(target_os = "macos")]{ - use std::process::Command; - Command::new("/usr/bin/caffeinate").arg("-u").arg("-t 5").spawn().ok(); - log::info!("wake up macos"); - } -} - async fn accept_connection_(server: ServerPtr, socket: Stream, secure: bool) -> ResultType<()> { let local_addr = socket.local_addr(); drop(socket); @@ -112,7 +104,6 @@ async fn accept_connection_(server: ServerPtr, socket: Stream, secure: bool) -> if let Ok((stream, addr)) = timeout(CONNECT_TIMEOUT, listener.accept()).await? { stream.set_nodelay(true).ok(); let stream_addr = stream.local_addr()?; - mac_wakeup(); create_tcp_connection(server, Stream::from(stream, stream_addr), addr, secure).await?; } Ok(()) @@ -203,6 +194,11 @@ pub async fn create_tcp_connection( } } + #[cfg(target_os = "macos")]{ + use std::process::Command; + Command::new("/usr/bin/caffeinate").arg("-u").arg("-t 5").spawn().ok(); + log::info!("wake up macos"); + } Connection::start(addr, stream, id, Arc::downgrade(&server)).await; Ok(()) } @@ -261,7 +257,6 @@ async fn create_relay_connection_( ..Default::default() }); stream.send(&msg_out).await?; - mac_wakeup(); create_tcp_connection(server, stream, peer_addr, secure).await?; Ok(()) }