001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements. See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership. The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing,
013 * software distributed under the License is distributed on an
014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 * KIND, either express or implied. See the License for the
016 * specific language governing permissions and limitations
017 * under the License.
018 *
019 */
020
021 package org.apache.directory.server.dns.io.encoder;
022
023
024 import org.apache.directory.server.dns.messages.ResourceRecord;
025 import org.apache.directory.server.dns.store.DnsAttribute;
026 import org.apache.mina.core.buffer.IoBuffer;
027
028
029 /**
030 * 3.3.11. NS RDATA format
031 *
032 * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
033 * / NSDNAME /
034 * / /
035 * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
036 *
037 * where:
038 *
039 * NSDNAME A <domain-name> which specifies a host which should be
040 * authoritative for the specified class and domain.
041 *
042 * NS records cause both the usual additional section processing to locate
043 * a type A record, and, when used in a referral, a special search of the
044 * zone in which they reside for glue information.
045 *
046 * The NS RR states that the named host should be expected to have a zone
047 * starting at owner name of the specified class. Note that the class may
048 * not indicate the protocol family which should be used to communicate
049 * with the host, although it is typically a strong hint. For example,
050 * hosts which are name servers for either Internet (IN) or Hesiod (HS)
051 * class information are normally queried using IN class protocols.
052 *
053 * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
054 * @version $Rev: 725712 $, $Date: 2008-12-11 17:32:04 +0200 (Thu, 11 Dec 2008) $
055 */
056 public class NameServerRecordEncoder extends ResourceRecordEncoder
057 {
058 protected void putResourceRecordData( IoBuffer byteBuffer, ResourceRecord record )
059 {
060 String domainName = record.get( DnsAttribute.DOMAIN_NAME );
061
062 putDomainName( byteBuffer, domainName );
063 }
064 }