Android Open Source - multicast_test_tool D N S Question






From Project

Back to project page multicast_test_tool.

License

The source code is released under:

Apache License

If you think the Android project multicast_test_tool listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright 2011 David Simmons//from w  w w .  j a v a 2 s.c o m
 * http://cafbit.com/entry/testing_multicast_support_on_android
 *
 * Licensed 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 com.cafbit.netlib.dns;

/**
 * This class represents a DNS "question" component.
 * @author simmons
 */
public class DNSQuestion extends DNSComponent {
    
    public Type type;
    public String name;
    
    public DNSQuestion(Type type, String name) {
        this.type = type;
        this.name = name;
    }
    
    public DNSQuestion(DNSBuffer buffer) {
        parse(buffer);
    }
    
    /**
     * Return the expected byte length of this question.
     */
    public int length() {
        int length = DNSBuffer.nameByteLength(name);
        length += 5; // zero-terminating length byte, qtype short, qclass short 
        return length;
    }
    
    /**
     * Render this DNS question into a byte buffer
     */
    public void serialize(DNSBuffer buffer) {
        buffer.checkRemaining(length());
        buffer.writeName(name); // qname
        buffer.writeShort(type.qtype); // qtype
        buffer.writeShort(1); // qclass (IN)
    }

    /**
     * Parse a question from the byte buffer
     * @param buffer
     */
    private void parse(DNSBuffer buffer) {
        name = buffer.readName();
        type = Type.getType(buffer.readShort());
        int qclass = buffer.readShort();
        if (qclass != 1) {
            throw new DNSException("only class IN supported.  (got "+qclass+")");
        }
    }
    
    public String toString() {
        return type.toString()+"? "+name;
    }

}




Java Source Code List

com.cafbit.multicasttest.MulticastTestActivity.java
com.cafbit.multicasttest.NetThread.java
com.cafbit.multicasttest.PacketListAdapter.java
com.cafbit.multicasttest.Packet.java
com.cafbit.multicasttest.Util.java
com.cafbit.netlib.NetUtil.java
com.cafbit.netlib.dns.DNSAnswer.java
com.cafbit.netlib.dns.DNSBuffer.java
com.cafbit.netlib.dns.DNSComponent.java
com.cafbit.netlib.dns.DNSException.java
com.cafbit.netlib.dns.DNSMessage.java
com.cafbit.netlib.dns.DNSQuestion.java