⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nxtrecord.java

📁 linux下建立JAVA虚拟机的源码KAFFE
💻 JAVA
字号:
// Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org)package org.xbill.DNS;import java.io.*;import java.util.*;/** * Next name - this record contains the following name in an ordered list * of names in the zone, and a set of types for which records exist for * this name.  The presence of this record in a response signifies a * failed query for data in a DNSSEC-signed zone.  * * @author Brian Wellington */public class NXTRecord extends Record {private Name next;private BitSet bitmap;NXTRecord() {}RecordgetObject() {	return new NXTRecord();}/** * Creates an NXT Record from the given data * @param next The following name in an ordered list of the zone * @param bitmap The set of type for which records exist at this name*/publicNXTRecord(Name name, int dclass, long ttl, Name next, BitSet bitmap) {	super(name, Type.NXT, dclass, ttl);	this.next = checkName("next", next);	this.bitmap = bitmap;}voidrrFromWire(DNSInput in) throws IOException {	next = new Name(in);	bitmap = new BitSet();	int bitmapLength = in.remaining();	for (int i = 0; i < bitmapLength; i++) {		int t = in.readU8();		for (int j = 0; j < 8; j++)			if ((t & (1 << (7 - j))) != 0)				bitmap.set(i * 8 + j);	}}voidrdataFromString(Tokenizer st, Name origin) throws IOException {	next = st.getName(origin);	bitmap = new BitSet();	while (true) {		Tokenizer.Token t = st.get();		if (!t.isString())			break;		int type = Type.value(t.value, true);		if (type <= 0 || type > 128)			throw st.exception("Invalid type: " + t.value);		bitmap.set(type);	}	st.unget();}/** Converts rdata to a String */StringrrToString() {	StringBuffer sb = new StringBuffer();	sb.append(next);	int length = bitmap.length();	for (short i = 0; i < length; i++)		if (bitmap.get(i)) {			sb.append(" ");			sb.append(Type.string(i));		}	return sb.toString();}/** Returns the next name */public NamegetNext() {	return next;}/** Returns the set of types defined for this name */public BitSetgetBitmap() {	return bitmap;}voidrrToWire(DNSOutput out, Compression c, boolean canonical) {	next.toWire(out, null, canonical);	int length = bitmap.length();	for (int i = 0, t = 0; i < length; i++) {		t |= (bitmap.get(i) ? (1 << (7 - i % 8)) : 0);		if (i % 8 == 7 || i == length - 1) {			out.writeU8(t);			t = 0;		}	}}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -