From 17431dee59d30798f6dc4286bf5963fde8752139 Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Sat, 25 Jan 2025 00:26:36 -0300 Subject: [PATCH] do not close relay connection when ping fails because some relays just do not pong. --- relay.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/relay.go b/relay.go index 18a27f5..a527710 100644 --- a/relay.go +++ b/relay.go @@ -9,6 +9,7 @@ import ( "log" "net/http" "strconv" + "strings" "sync" "sync/atomic" "time" @@ -187,7 +188,7 @@ func (r *Relay) ConnectWithTLS(ctx context.Context, tlsConfig *tls.Config) error case <-ticker.C: if r.Connection != nil { err := r.Connection.Ping(r.connectionContext) - if err != nil { + if err != nil && !strings.Contains(err.Error(), "failed to wait for pong") { InfoLogger.Printf("{%s} error writing ping: %v; closing websocket", r.URL, err) r.Close() // this should trigger a context cancelation return