From e1368baf8d9fe6fea4628a97f2719e8b3a8a94ab Mon Sep 17 00:00:00 2001 From: Shreyas Zare Date: Sun, 9 Jul 2023 15:56:06 +0530 Subject: [PATCH] NoDataApp: fixed issue with wildcard records. --- Apps/NoDataApp/App.cs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Apps/NoDataApp/App.cs b/Apps/NoDataApp/App.cs index f634ec77..9607cbb3 100644 --- a/Apps/NoDataApp/App.cs +++ b/Apps/NoDataApp/App.cs @@ -50,17 +50,17 @@ namespace NoData { DnsQuestionRecord question = request.Question[0]; - if (question.Name.Equals(appRecordName, StringComparison.OrdinalIgnoreCase)) - { - using JsonDocument jsonDocument = JsonDocument.Parse(appRecordData); - JsonElement jsonAppRecordData = jsonDocument.RootElement; + if (!question.Name.Equals(appRecordName, StringComparison.OrdinalIgnoreCase) && !appRecordName.StartsWith("*.", StringComparison.OrdinalIgnoreCase)) + return Task.FromResult(null); - foreach (JsonElement jsonBlockedType in jsonAppRecordData.GetProperty("blockedTypes").EnumerateArray()) - { - DnsResourceRecordType blockedType = Enum.Parse(jsonBlockedType.GetString(), true); - if ((blockedType == question.Type) || (blockedType == DnsResourceRecordType.ANY)) - return Task.FromResult(new DnsDatagram(request.Identifier, true, request.OPCODE, false, false, request.RecursionDesired, isRecursionAllowed, false, false, DnsResponseCode.NoError, request.Question)); - } + using JsonDocument jsonDocument = JsonDocument.Parse(appRecordData); + JsonElement jsonAppRecordData = jsonDocument.RootElement; + + foreach (JsonElement jsonBlockedType in jsonAppRecordData.GetProperty("blockedTypes").EnumerateArray()) + { + DnsResourceRecordType blockedType = Enum.Parse(jsonBlockedType.GetString(), true); + if ((blockedType == question.Type) || (blockedType == DnsResourceRecordType.ANY)) + return Task.FromResult(new DnsDatagram(request.Identifier, true, request.OPCODE, false, false, request.RecursionDesired, isRecursionAllowed, false, false, DnsResponseCode.NoError, request.Question)); } return Task.FromResult(null);