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); }
public ResourceRecord Visit(CAAResourceRecord record, DnsZoneFormatterContext context) { context.WritePreference(record.Flag); context.WriteTag(record.Tag); context.WriteString(record.Value); return(record); }
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); }