From f4a5ac568b1d5c9e7d7374857140f5abceb1be70 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Sun, 26 Feb 2023 12:54:37 +0100 Subject: [PATCH] Check if tcp connection is ready --- src/checker/tcp.rs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/checker/tcp.rs b/src/checker/tcp.rs index c5ab721..92a707b 100644 --- a/src/checker/tcp.rs +++ b/src/checker/tcp.rs @@ -1,6 +1,7 @@ use std::str::FromStr; use reqwest::Url; +use tokio::io::Interest; use tokio::net::TcpStream; use crate::checker::{CheckResult, CheckState}; @@ -25,7 +26,21 @@ impl Checker<'_> { )) .await { - Ok(_) => CheckState::Up, + Ok(tcp_stream) => { + match tcp_stream + .ready(Interest::READABLE | Interest::WRITABLE) + .await + { + Ok(ready) => { + if !ready.is_empty() { + CheckState::Up + } else { + CheckState::Warn + } + } + _ => CheckState::Warn, + } + } _ => CheckState::Down, }; return CheckResult {