You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by er...@apache.org on 2005/01/11 08:14:54 UTC
svn commit: r124894 - /incubator/directory/dns/trunk/core/src/java/org/apache/dns/io/DnsMessageDecoder.java /incubator/directory/dns/trunk/core/src/java/org/apache/dns/io/ResourceRecordDecoder.java
Author: erodriguez
Date: Mon Jan 10 23:14:50 2005
New Revision: 124894
URL: http://svn.apache.org/viewcvs?view=rev&rev=124894
Log:
DNS Resource Record decoding.
Added:
incubator/directory/dns/trunk/core/src/java/org/apache/dns/io/ResourceRecordDecoder.java
Modified:
incubator/directory/dns/trunk/core/src/java/org/apache/dns/io/DnsMessageDecoder.java
Modified: incubator/directory/dns/trunk/core/src/java/org/apache/dns/io/DnsMessageDecoder.java
Url: http://svn.apache.org/viewcvs/incubator/directory/dns/trunk/core/src/java/org/apache/dns/io/DnsMessageDecoder.java?view=diff&rev=124894&p1=incubator/directory/dns/trunk/core/src/java/org/apache/dns/io/DnsMessageDecoder.java&r1=124893&p2=incubator/directory/dns/trunk/core/src/java/org/apache/dns/io/DnsMessageDecoder.java&r2=124894
==============================================================================
--- incubator/directory/dns/trunk/core/src/java/org/apache/dns/io/DnsMessageDecoder.java (original)
+++ incubator/directory/dns/trunk/core/src/java/org/apache/dns/io/DnsMessageDecoder.java Mon Jan 10 23:14:50 2005
@@ -79,8 +79,15 @@
byte[] data = new byte[ dataLength ];
byteBuffer.get( data );
- records[ ii ] = new ResourceRecord( domainName, recordType,
+ try
+ {
+ records[ ii ] = ResourceRecordDecoder.getInstance( domainName, recordType,
recordClass, timeToLive, data );
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
}
return records;
Added: incubator/directory/dns/trunk/core/src/java/org/apache/dns/io/ResourceRecordDecoder.java
Url: http://svn.apache.org/viewcvs/incubator/directory/dns/trunk/core/src/java/org/apache/dns/io/ResourceRecordDecoder.java?view=auto&rev=124894
==============================================================================
--- (empty file)
+++ incubator/directory/dns/trunk/core/src/java/org/apache/dns/io/ResourceRecordDecoder.java Mon Jan 10 23:14:50 2005
@@ -0,0 +1,75 @@
+/*
+ * 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.io;
+
+import org.apache.dns.DnsException;
+import org.apache.dns.records.RecordClass;
+import org.apache.dns.records.RecordType;
+import org.apache.dns.records.ResourceRecord;
+import org.apache.dns.records.internet.AddressRecord;
+import org.apache.dns.records.internet.WellKnownServicesRecord;
+import org.apache.dns.records.standard.CanonicalNameRecord;
+import org.apache.dns.records.standard.HostInformationRecord;
+import org.apache.dns.records.standard.MailExchangeRecord;
+import org.apache.dns.records.standard.MailInformationRecord;
+import org.apache.dns.records.standard.NameServerRecord;
+import org.apache.dns.records.standard.PointerRecord;
+import org.apache.dns.records.standard.StartOfAuthorityRecord;
+import org.apache.dns.records.standard.TextRecord;
+
+public class ResourceRecordDecoder
+{
+ public static ResourceRecord getInstance( String domainName, RecordType recordType,
+ RecordClass recordClass, int timeToLive, byte[] resourceData )
+ throws DnsException
+ {
+ if ( recordClass != RecordClass.IN )
+ {
+ throw new DnsException( "Unsupported record class: " + recordClass );
+ }
+
+ int tag = recordType.getOrdinal();
+
+ switch (tag)
+ {
+ case 1:
+ return new AddressRecord( domainName, timeToLive, resourceData );
+ case 2:
+ return new NameServerRecord( domainName, timeToLive, resourceData );
+ case 5:
+ return new CanonicalNameRecord( domainName, timeToLive, resourceData );
+ case 6:
+ return new StartOfAuthorityRecord( domainName, timeToLive, resourceData );
+ case 11:
+ return new WellKnownServicesRecord( domainName, timeToLive, resourceData );
+ case 12:
+ return new PointerRecord( domainName, timeToLive, resourceData );
+ case 13:
+ return new HostInformationRecord( domainName, timeToLive, resourceData );
+ case 14:
+ return new MailInformationRecord( domainName, timeToLive, resourceData );
+ case 15:
+ return new MailExchangeRecord( domainName, timeToLive, resourceData );
+ case 16:
+ return new TextRecord( domainName, timeToLive, resourceData );
+ default:
+ throw new DnsException( "Unsupported or bad option code: " + tag );
+ }
+ }
+}
+