Esempio n. 1
0
        public ResourceRecord Visit(CAAResourceRecord record, DnsZoneParseContext context)
        {
            record.flag = context.ReadPreference();
            record.tag  = context.Tokens.Dequeue().StringValue;
            var sb = new StringBuilder();

            while (!context.IsEof)
            {
                var token = context.Tokens.Peek();
                if (token.Type == TokenType.NewLine)
                {
                    break;
                }
                if (token.Type == TokenType.QuotedString || token.Type == TokenType.Literal)
                {
                    sb.Append(token.StringValue);
                    context.Tokens.Dequeue();
                }
                else
                {
                    throw new NotSupportedException($"unexpected token {token.Type}");
                }
            }
            record.value = sb.ToString();

            return(record);
        }
Esempio n. 2
0
 public ResourceRecord Visit(CAAResourceRecord record, DnsZoneFormatterContext context)
 {
     context.WritePreference(record.Flag);
     context.WriteTag(record.Tag);
     context.WriteString(record.Value);
     return(record);
 }
Esempio n. 3
0
        public void CAAOutputTest()
        {
            DnsZoneFile zone = new DnsZoneFile();

            CAAResourceRecord testRecord = new CAAResourceRecord();

            testRecord.Name  = "example.com";
            testRecord.Class = "IN";
            testRecord.flag  = 0;
            testRecord.tag   = "iodef";
            testRecord.value = "letsencrypt.org";
            zone.Records.Add(testRecord);
            string sOutput = zone.ToString();

            Assert.AreEqual(";CAA records\r\nexample.com.\tIN\t\tCAA\t0\tiodef\t\"letsencrypt.org\"\t\r\n\r\n", sOutput);
        }
        public void OutputTest()
        {
            var zone = new DnsZoneFile();

            var record = new CAAResourceRecord {
                Name  = "example.com",
                Class = "IN",
                Flag  = 0,
                Tag   = "iodef",
                Value = "letsencrypt.org"
            };

            zone.Records.Add(record);
            string sOutput = zone.ToString();

            Assert.AreEqual(";CAA records\r\nexample.com.\tIN\t\tCAA\t0\tiodef\t\"letsencrypt.org\"\t\r\n\r\n", sOutput);
        }