2014-06-02 17:00:33 +02:00
|
|
|
/*
|
2015-03-16 07:46:14 +01:00
|
|
|
* Copyright 2015 The Netty Project
|
2014-06-02 17:00:33 +02:00
|
|
|
*
|
|
|
|
* 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;
|
|
|
|
|
|
|
|
/**
|
2015-03-16 07:46:14 +01:00
|
|
|
* A DNS response message.
|
2014-06-02 17:00:33 +02:00
|
|
|
*/
|
2015-03-16 07:46:14 +01:00
|
|
|
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);
|
2014-06-02 17:00:33 +02:00
|
|
|
|
2015-03-16 07:46:14 +01:00
|
|
|
/**
|
|
|
|
* Returns {@code true} if DNS server can handle recursive queries.
|
|
|
|
*/
|
|
|
|
boolean isRecursionAvailable();
|
2014-06-02 17:00:33 +02:00
|
|
|
|
2015-03-16 07:46:14 +01:00
|
|
|
/**
|
|
|
|
* 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();
|
2014-06-02 17:00:33 +02:00
|
|
|
|
|
|
|
/**
|
2015-03-16 07:46:14 +01:00
|
|
|
* Sets the response code for this message.
|
|
|
|
*
|
|
|
|
* @param code the response code
|
2014-06-02 17:00:33 +02:00
|
|
|
*/
|
2015-03-16 07:46:14 +01:00
|
|
|
DnsResponse setCode(DnsResponseCode code);
|
|
|
|
|
|
|
|
@Override
|
|
|
|
DnsResponse setId(int id);
|
|
|
|
|
|
|
|
@Override
|
|
|
|
DnsResponse setOpCode(DnsOpCode opCode);
|
|
|
|
|
|
|
|
@Override
|
|
|
|
DnsResponse setRecursionDesired(boolean recursionDesired);
|
2014-06-02 17:00:33 +02:00
|
|
|
|
|
|
|
@Override
|
2015-03-16 07:46:14 +01:00
|
|
|
DnsResponse setZ(int z);
|
2014-06-02 17:00:33 +02:00
|
|
|
|
|
|
|
@Override
|
2015-03-16 07:46:14 +01:00
|
|
|
DnsResponse setRecord(DnsSection section, DnsRecord record);
|
2014-06-02 17:00:33 +02:00
|
|
|
|
|
|
|
@Override
|
2015-03-16 07:46:14 +01:00
|
|
|
DnsResponse addRecord(DnsSection section, DnsRecord record);
|
2014-06-02 17:00:33 +02:00
|
|
|
|
|
|
|
@Override
|
2015-03-16 07:46:14 +01:00
|
|
|
DnsResponse addRecord(DnsSection section, int index, DnsRecord record);
|
2014-06-02 17:00:33 +02:00
|
|
|
|
|
|
|
@Override
|
2015-03-16 07:46:14 +01:00
|
|
|
DnsResponse clear(DnsSection section);
|
2014-06-02 17:00:33 +02:00
|
|
|
|
|
|
|
@Override
|
2015-03-16 07:46:14 +01:00
|
|
|
DnsResponse clear();
|
2014-06-02 17:00:33 +02:00
|
|
|
|
|
|
|
@Override
|
2015-03-16 07:46:14 +01:00
|
|
|
DnsResponse touch();
|
2014-06-02 17:00:33 +02:00
|
|
|
|
|
|
|
@Override
|
2015-03-16 07:46:14 +01:00
|
|
|
DnsResponse touch(Object hint);
|
2014-06-02 17:00:33 +02:00
|
|
|
|
|
|
|
@Override
|
2015-03-16 07:46:14 +01:00
|
|
|
DnsResponse retain();
|
2014-06-02 17:00:33 +02:00
|
|
|
|
|
|
|
@Override
|
2015-03-16 07:46:14 +01:00
|
|
|
DnsResponse retain(int increment);
|
2014-06-02 17:00:33 +02:00
|
|
|
}
|