From eb0c50f672654a0d09262df013c655d0494415d0 Mon Sep 17 00:00:00 2001 From: zivillian Date: Fri, 31 May 2024 17:18:55 +0200 Subject: [PATCH] extend connection check --- Graphite/CarbonConnectionPool.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Graphite/CarbonConnectionPool.cs b/Graphite/CarbonConnectionPool.cs index c0de838..af28660 100644 --- a/Graphite/CarbonConnectionPool.cs +++ b/Graphite/CarbonConnectionPool.cs @@ -136,6 +136,12 @@ private async Task TestAsync(TcpClient client, CancellationToken cancellat try { await _formatter.TestConnectionAsync(client.GetStream(), cancellationToken).ConfigureAwait(false); + //https://stackoverflow.com/a/2661876/19671 + var socket = client.Client; + if (!socket.Connected) return false; + var poll = socket.Poll(1000, SelectMode.SelectRead); + var empty = socket.Available == 0; + if (poll && empty) return false; return true; } catch (IOException ex) when (ex.InnerException is SocketException se && CheckSocketException(se)) @@ -181,4 +187,4 @@ public bool Return(TcpClient obj) } } } -} \ No newline at end of file +}