From b009d1ac64c745d1e557d98ef84d1a8c65733220 Mon Sep 17 00:00:00 2001 From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Wed, 13 Dec 2023 12:23:35 +0100 Subject: [PATCH] Prevent adding own host to host list --- HyperbolicDownloaderApi/Commands/HostCommands.cs | 9 ++++++++- .../Networking/HostsManager.cs | 3 ++- .../Networking/NetworkSocket.cs | 15 +++++++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/HyperbolicDownloaderApi/Commands/HostCommands.cs b/HyperbolicDownloaderApi/Commands/HostCommands.cs index 097847d..86d307d 100644 --- a/HyperbolicDownloaderApi/Commands/HostCommands.cs +++ b/HyperbolicDownloaderApi/Commands/HostCommands.cs @@ -155,7 +155,14 @@ public class HostCommands newHosts++; } - ApiManager.SendNotificationMessageNewLine($"Success! Added {newHosts} new host(s).", NotificationMessageType.Success); + if (newHosts > 0) + { + ApiManager.SendNotificationMessageNewLine($"Added {newHosts} new host(s).", NotificationMessageType.Success); + } + else + { + ApiManager.SendNotificationMessageNewLine($"No new hosts added.", NotificationMessageType.Warning); + } } else { diff --git a/HyperbolicDownloaderApi/Networking/HostsManager.cs b/HyperbolicDownloaderApi/Networking/HostsManager.cs index 4185ac1..7281f47 100644 --- a/HyperbolicDownloaderApi/Networking/HostsManager.cs +++ b/HyperbolicDownloaderApi/Networking/HostsManager.cs @@ -29,11 +29,12 @@ public class HostsManager public bool Add(NetworkSocket host) { - if (!Contains(host)) + if (!Contains(host) && !host.Equals(ApiManager.GetLocalSocket())) { hosts.Add(host); return true; } + SaveHosts(); return false; diff --git a/HyperbolicDownloaderApi/Networking/NetworkSocket.cs b/HyperbolicDownloaderApi/Networking/NetworkSocket.cs index 6b8c702..18e3a74 100644 --- a/HyperbolicDownloaderApi/Networking/NetworkSocket.cs +++ b/HyperbolicDownloaderApi/Networking/NetworkSocket.cs @@ -12,4 +12,19 @@ public class NetworkSocket Port = port; LastActive = lastActive; } + + public override bool Equals(object? obj) + { + if (obj is not NetworkSocket networkSocket) + { + return false; + } + + return networkSocket.IPAddress == IPAddress && networkSocket.Port == Port; + } + + public override int GetHashCode() + { + return HashCode.Combine(IPAddress, Port); + } } \ No newline at end of file