From 2a61440aedb5d7fecf600b6fb587ecaf74bf1829 Mon Sep 17 00:00:00 2001 From: William Casarin Date: Thu, 19 Sep 2024 12:58:37 -0700 Subject: [PATCH] relays: add some ping/pong and connection logs need this for debugging connection issues Signed-off-by: William Casarin --- damus/Nostr/RelayConnection.swift | 7 ++++--- damus/Nostr/RelayPool.swift | 1 + damus/Util/Log.swift | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/damus/Nostr/RelayConnection.swift b/damus/Nostr/RelayConnection.swift index c3e5f625..f8a2e3e2 100644 --- a/damus/Nostr/RelayConnection.swift +++ b/damus/Nostr/RelayConnection.swift @@ -46,9 +46,10 @@ final class RelayConnection: ObservableObject { if err == nil { self.last_pong = .now + Log.info("Got pong from '%s'", for: .networking, self.relay_url.absoluteString) self.log?.add("Successful ping") } else { - print("pong failed, reconnecting \(self.relay_url.id)") + Log.info("Ping failed, reconnecting to '%s'", for: .networking, self.relay_url.absoluteString) self.isConnected = false self.isConnecting = false self.reconnect_with_backoff() @@ -126,7 +127,7 @@ final class RelayConnection: ObservableObject { self.receive(message: message) case .disconnected(let closeCode, let reason): if closeCode != .normalClosure { - print("⚠️ Warning: RelayConnection (\(self.relay_url)) closed with code \(closeCode), reason: \(String(describing: reason))") + Log.error("⚠️ Warning: RelayConnection (%d) closed with code: %s", for: .networking, String(describing: closeCode), String(describing: reason)) } DispatchQueue.main.async { self.isConnected = false @@ -134,7 +135,7 @@ final class RelayConnection: ObservableObject { self.reconnect() } case .error(let error): - print("⚠️ Warning: RelayConnection (\(self.relay_url)) error: \(error)") + Log.error("⚠️ Warning: RelayConnection (%s) error: %s", for: .networking, self.relay_url.absoluteString, error.localizedDescription) let nserr = error as NSError if nserr.domain == NSPOSIXErrorDomain && nserr.code == 57 { // ignore socket not connected? diff --git a/damus/Nostr/RelayPool.swift b/damus/Nostr/RelayPool.swift index 903b3f76..e63dad06 100644 --- a/damus/Nostr/RelayPool.swift +++ b/damus/Nostr/RelayPool.swift @@ -89,6 +89,7 @@ class RelayPool { } func ping() { + Log.info("Pinging %d relays", for: .networking, relays.count) for relay in relays { relay.connection.ping() } diff --git a/damus/Util/Log.swift b/damus/Util/Log.swift index d8a3208e..830f9e65 100644 --- a/damus/Util/Log.swift +++ b/damus/Util/Log.swift @@ -13,6 +13,7 @@ enum LogCategory: String { case nav case render case storage + case networking case push_notifications case damus_purple case image_uploading