public static class DnsMessage.Builder extends Object
public DnsMessage.Builder setId(int id)
id
- The new DNS message id.public DnsMessage.Builder setOpcode(DnsMessage.OPCODE opcode)
public DnsMessage.Builder setResponseCode(DnsMessage.RESPONSE_CODE responseCode)
public DnsMessage.Builder setQrFlag(boolean query)
query
- The new QR flag status.public DnsMessage.Builder setAuthoritativeAnswer(boolean authoritativeAnswer)
authoritativeAnswer
- Tge new authoritative answer value.public DnsMessage.Builder setTruncated(boolean truncated)
truncated
- The new truncated bit status.public DnsMessage.Builder setRecursionDesired(boolean recursionDesired)
recursionDesired
- The new recusrion setting.public DnsMessage.Builder setRecursionAvailable(boolean recursionAvailable)
recursionAvailable
- The new recursion available status.public DnsMessage.Builder setAuthenticData(boolean authenticData)
authenticData
- The new authentic data flag value.@Deprecated public DnsMessage.Builder setCheckDisabled(boolean checkingDisabled)
checkingDisabled
- The new check disabled value.public DnsMessage.Builder setCheckingDisabled(boolean checkingDisabled)
checkingDisabled
- The new check disabled value.public void copyFlagsFrom(DnsMessage dnsMessage)
public DnsMessage.Builder setReceiveTimestamp(long receiveTimestamp)
public DnsMessage.Builder addQuestion(Question question)
public DnsMessage.Builder setQuestions(List<Question> questions)
questions
- The questions.public DnsMessage.Builder setQuestion(Question question)
question
- The question.public DnsMessage.Builder addAnswer(Record<? extends Data> answer)
public DnsMessage.Builder addAnswers(Collection<Record<? extends Data>> records)
public DnsMessage.Builder setAnswers(Collection<Record<? extends Data>> records)
public List<Record<? extends Data>> getAnswers()
public DnsMessage.Builder addNameserverRecords(Record<? extends Data> record)
public DnsMessage.Builder setNameserverRecords(Collection<Record<? extends Data>> records)
public DnsMessage.Builder setAdditionalResourceRecords(Collection<Record<? extends Data>> records)
public DnsMessage.Builder addAdditionalResourceRecord(Record<? extends Data> record)
public DnsMessage.Builder addAdditionalResourceRecords(List<Record<? extends Data>> records)
public List<Record<? extends Data>> getAdditionalResourceRecords()
public Edns.Builder getEdnsBuilder()
The EDNS record can be used to announce the supported size of UDP payload as well as additional flags.
Note that some networks and firewalls are known to block big UDP payloads. 1280 should be a reasonable value, everything below 512 is treated as 512 and should work on all networks.
public DnsMessage build()