Author: erodriguez
Date: Mon Jan 10 23:19:53 2005
New Revision: 124896

URL: http://svn.apache.org/viewcvs?view=rev&rev=124896
Log:
DNS resource record classes.
Added:
   
incubator/directory/dns/trunk/core/src/java/org/apache/dns/records/InternetResource.java
   
incubator/directory/dns/trunk/core/src/java/org/apache/dns/records/QuestionRecord.java
   
incubator/directory/dns/trunk/core/src/java/org/apache/dns/records/ResourceRecord.java
   (contents, props changed)

Added: 
incubator/directory/dns/trunk/core/src/java/org/apache/dns/records/InternetResource.java
Url: 
http://svn.apache.org/viewcvs/incubator/directory/dns/trunk/core/src/java/org/apache/dns/records/InternetResource.java?view=auto&rev=124896
==============================================================================
--- (empty file)
+++ 
incubator/directory/dns/trunk/core/src/java/org/apache/dns/records/InternetResource.java
    Mon Jan 10 23:19:53 2005
@@ -0,0 +1,40 @@
+/*
+ *   Copyright 2005 The Apache Software Foundation
+ *
+ *   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 org.apache.dns.records;
+
+import java.nio.ByteBuffer;
+
+
+public abstract class InternetResource extends ResourceRecord
+{
+       private byte[] resourceData;
+       
+       public InternetResource( String domainName, RecordType recordType,
+                       int timeToLive, byte[] resourceData )
+       {
+               super( domainName, recordType, RecordClass.IN, timeToLive, 
resourceData );
+               
+               this.resourceData = resourceData;
+       }
+       
+       protected void dataToByteBuffer( ByteBuffer out )
+       {
+               out.put( resourceData );
+       }
+}
+

Added: 
incubator/directory/dns/trunk/core/src/java/org/apache/dns/records/QuestionRecord.java
Url: 
http://svn.apache.org/viewcvs/incubator/directory/dns/trunk/core/src/java/org/apache/dns/records/QuestionRecord.java?view=auto&rev=124896
==============================================================================
--- (empty file)
+++ 
incubator/directory/dns/trunk/core/src/java/org/apache/dns/records/QuestionRecord.java
      Mon Jan 10 23:19:53 2005
@@ -0,0 +1,98 @@
+/*
+ *   Copyright 2005 The Apache Software Foundation
+ *
+ *   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 org.apache.dns.records;
+
+
+/**
+ * The question section is used to carry the "question" in most queries,
+ * i.e., the parameters that define what is being asked.  The section
+ * contains QDCOUNT (usually 1) entries, each of the following format:
+ * 
+ *                                     1  1  1  1  1  1
+ *       0  1  2  3  4  5  6  7  8  9  0  1  2  3  4  5
+ *     +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ *     |                                               |
+ *     /                     QNAME                     /
+ *     /                                               /
+ *     +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ *     |                     QTYPE                     |
+ *     +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ *     |                     QCLASS                    |
+ *     +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ */
+public class QuestionRecord
+{
+       private String      domainName;
+       private RecordType  recordType;
+       private RecordClass recordClass;
+       
+       
+       public QuestionRecord( String domainName, RecordType recordType, 
RecordClass recordClass )
+       {
+               this.domainName  = domainName;
+               this.recordType  = recordType;
+               this.recordClass = recordClass;
+       }
+       
+       
+       /**
+        * A two octet code that specifies the class of the query.
+     * For example, the QCLASS field is IN for the Internet.
+        * 
+        * @return Returns the questionClass.
+        */
+       public RecordClass getRecordClass()
+       {
+               return recordClass;
+       }
+       
+       /**
+        * A domain name represented as a sequence of labels, where
+        * each label consists of a length octet followed by that
+        * number of octets.  The domain name terminates with the
+        * zero length octet for the null label of the root.  Note
+        * that this field may be an odd number of octets; no
+        * padding is used.
+        * 
+        * @return Returns the questionName.
+        */
+       public String getDomainName()
+       {
+               return domainName;
+       }
+       
+       /**
+        * A two octet code which specifies the type of the query.
+        * The values for this field include all codes valid for a
+        * TYPE field, together with some more general codes which
+        * can match more than one type of RR.
+        * 
+        * @return Returns the questionType.
+        */
+       public RecordType getRecordType()
+       {
+               return recordType;
+       }
+       
+       public String toString()
+       {
+               return "org.apache.dns.records.QuestionRecord[ " + domainName + 
" ( " +
+                               recordClass + " " + recordType + " ) ]";
+       }
+}
+

Added: 
incubator/directory/dns/trunk/core/src/java/org/apache/dns/records/ResourceRecord.java
Url: 
http://svn.apache.org/viewcvs/incubator/directory/dns/trunk/core/src/java/org/apache/dns/records/ResourceRecord.java?view=auto&rev=124896
==============================================================================
--- (empty file)
+++ 
incubator/directory/dns/trunk/core/src/java/org/apache/dns/records/ResourceRecord.java
      Mon Jan 10 23:19:53 2005
@@ -0,0 +1,81 @@
+/*
+ *   Copyright 2005 The Apache Software Foundation
+ *
+ *   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 org.apache.dns.records;
+
+import java.nio.ByteBuffer;
+
+/**
+ * The answer, authority, and additional sections all share the same
+ * format: a variable number of resource records, where the number of
+ * records is specified in the corresponding count field in the header.
+ * Each resource record has the following format:
+ *                                     1  1  1  1  1  1
+ *       0  1  2  3  4  5  6  7  8  9  0  1  2  3  4  5
+ *     +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ *     |                                               |
+ *     /                                               /
+ *     /                      NAME                     /
+ *     |                                               |
+ *     +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ *     |                      TYPE                     |
+ *     +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ *     |                     CLASS                     |
+ *     +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ *     |                      TTL                      |
+ *     |                                               |
+ *     +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ *     |                   RDLENGTH                    |
+ *     +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
+ *     /                     RDATA                     /
+ *     /                                               /
+ *     +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ */
+public abstract class ResourceRecord
+{
+       private String      domainName;
+       private RecordType  recordType;
+       private RecordClass recordClass;
+       
+       private int         timeToLive;
+       private byte[]      resourceData;
+       
+       public ResourceRecord( String domainName, RecordType recordType, 
RecordClass recordClass,
+                       int timeToLive, byte[] resourceData )
+       {
+               this.domainName   = domainName;
+               this.recordType   = recordType;
+               this.recordClass  = recordClass;
+               this.timeToLive   = timeToLive;
+               this.resourceData = resourceData;
+       }
+       
+       abstract protected void dataToByteBuffer( ByteBuffer out );
+       
+       public void writeTo( ByteBuffer out )
+       {
+               dataToByteBuffer( out );
+       }
+       
+       public String toString()
+       {
+               return "org.apache.dns.records.ResourceRecord[ " + domainName + 
" ( " +
+                               recordClass + " " + recordType + " " + 
timeToLive + " " +
+                               resourceData.length + " ) ]";
+       }
+}
+

Reply via email to