/* * Copyright 2015 The Netty Project * * The Netty Project licenses this file to you under the Apache License, * version 2.0 (the "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ package io.netty.handler.codec.dns; import io.netty.util.internal.UnstableApi; /** * A DNS response message. */ @UnstableApi public interface DnsResponse extends DnsMessage { /** * Returns {@code true} if responding server is authoritative for the domain * name in the query message. */ boolean isAuthoritativeAnswer(); /** * Set to {@code true} if responding server is authoritative for the domain * name in the query message. * * @param authoritativeAnswer flag for authoritative answer */ DnsResponse setAuthoritativeAnswer(boolean authoritativeAnswer); /** * Returns {@code true} if response has been truncated, usually if it is * over 512 bytes. */ boolean isTruncated(); /** * Set to {@code true} if response has been truncated (usually happens for * responses over 512 bytes). * * @param truncated flag for truncation */ DnsResponse setTruncated(boolean truncated); /** * Returns {@code true} if DNS server can handle recursive queries. */ boolean isRecursionAvailable(); /** * Set to {@code true} if DNS server can handle recursive queries. * * @param recursionAvailable flag for recursion availability */ DnsResponse setRecursionAvailable(boolean recursionAvailable); /** * Returns the 4 bit return code. */ DnsResponseCode code(); /** * Sets the response code for this message. * * @param code the response code */ DnsResponse setCode(DnsResponseCode code); @Override DnsResponse setId(int id); @Override DnsResponse setOpCode(DnsOpCode opCode); @Override DnsResponse setRecursionDesired(boolean recursionDesired); @Override DnsResponse setZ(int z); @Override DnsResponse setRecord(DnsSection section, DnsRecord record); @Override DnsResponse addRecord(DnsSection section, DnsRecord record); @Override DnsResponse addRecord(DnsSection section, int index, DnsRecord record); @Override DnsResponse clear(DnsSection section); @Override DnsResponse clear(); @Override DnsResponse touch(); @Override DnsResponse touch(Object hint); @Override DnsResponse retain(); @Override DnsResponse retain(int increment); }