From beca9ac032a01a4344bd20f50c51be1349e718af Mon Sep 17 00:00:00 2001 From: Shreyas Zare Date: Sun, 29 Oct 2023 19:24:42 +0530 Subject: [PATCH] WebServiceDashboardApi: added rate limited info for top clients. Minor code refactoring changes done. --- DnsServerCore/WebServiceDashboardApi.cs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/DnsServerCore/WebServiceDashboardApi.cs b/DnsServerCore/WebServiceDashboardApi.cs index af8335b0..d0ae5c4e 100644 --- a/DnsServerCore/WebServiceDashboardApi.cs +++ b/DnsServerCore/WebServiceDashboardApi.cs @@ -442,6 +442,7 @@ namespace DnsServerCore jsonWriter.WriteString("domain", clientDomain); jsonWriter.WriteNumber("hits", item.Value); + jsonWriter.WriteBoolean("rateLimited", _dnsWebService.DnsServer.IsQpmLimitCrossed(IPAddress.Parse(item.Key))); jsonWriter.WriteEndObject(); } @@ -462,8 +463,8 @@ namespace DnsServerCore jsonWriter.WriteString("name", item.Key); - if (item.Key.Contains("xn--", StringComparison.OrdinalIgnoreCase)) - jsonWriter.WriteString("nameIdn", DnsClient.ConvertDomainNameToUnicode(item.Key)); + if (DnsClient.TryConvertDomainNameToUnicode(item.Key, out string idn)) + jsonWriter.WriteString("nameIdn", idn); jsonWriter.WriteNumber("hits", item.Value); @@ -486,8 +487,8 @@ namespace DnsServerCore jsonWriter.WriteString("name", item.Key); - if (item.Key.Contains("xn--", StringComparison.OrdinalIgnoreCase)) - jsonWriter.WriteString("nameIdn", DnsClient.ConvertDomainNameToUnicode(item.Key)); + if (DnsClient.TryConvertDomainNameToUnicode(item.Key, out string idn)) + jsonWriter.WriteString("nameIdn", idn); jsonWriter.WriteNumber("hits", item.Value); @@ -578,6 +579,7 @@ namespace DnsServerCore jsonWriter.WriteString("domain", clientDomain); jsonWriter.WriteNumber("hits", item.Value); + jsonWriter.WriteBoolean("rateLimited", _dnsWebService.DnsServer.IsQpmLimitCrossed(IPAddress.Parse(item.Key))); jsonWriter.WriteEndObject(); } @@ -597,8 +599,8 @@ namespace DnsServerCore jsonWriter.WriteString("name", item.Key); - if (item.Key.Contains("xn--", StringComparison.OrdinalIgnoreCase)) - jsonWriter.WriteString("nameIdn", DnsClient.ConvertDomainNameToUnicode(item.Key)); + if (DnsClient.TryConvertDomainNameToUnicode(item.Key, out string idn)) + jsonWriter.WriteString("nameIdn", idn); jsonWriter.WriteNumber("hits", item.Value); @@ -620,8 +622,8 @@ namespace DnsServerCore jsonWriter.WriteString("name", item.Key); - if (item.Key.Contains("xn--", StringComparison.OrdinalIgnoreCase)) - jsonWriter.WriteString("nameIdn", DnsClient.ConvertDomainNameToUnicode(item.Key)); + if (DnsClient.TryConvertDomainNameToUnicode(item.Key, out string idn)) + jsonWriter.WriteString("nameIdn", idn); jsonWriter.WriteNumber("hits", item.Value);