nsaprecord.java

来自「linux下建立JAVA虚拟机的源码KAFFE」· Java 代码 · 共 105 行

JAVA
105
字号
// Copyright (c) 2004 Brian Wellington (bwelling@xbill.org)package org.xbill.DNS;import java.io.*;import org.xbill.DNS.utils.*;/** * NSAP Address Record. * * @author Brian Wellington */public class NSAPRecord extends Record {private byte [] address;NSAPRecord() {}RecordgetObject() {	return new NSAPRecord();}private static final byte []checkAndConvertAddress(String address) {	if (!address.substring(0, 2).equalsIgnoreCase("0x")) {		return null;	}	ByteArrayOutputStream bytes = new ByteArrayOutputStream();	boolean partial = false;	int current = 0;	for (int i = 2; i < address.length(); i++) {		char c = address.charAt(i);		if (c == '.') {			continue;		}		int value = Character.digit(c, 16);		if (value == -1) {			return null;		}		if (partial) {			current += value;			bytes.write(current);			partial = false;		} else {			current = value << 4;			partial = true;		}	}	if (partial) {		return null;	}	return bytes.toByteArray();}/** * Creates an NSAP Record from the given data * @param address The NSAP address. * @throws IllegalArgumentException The address is not a valid NSAP address. */publicNSAPRecord(Name name, int dclass, long ttl, String address) {	super(name, Type.NSAP, dclass, ttl);	this.address = checkAndConvertAddress(address);	if (this.address == null) {		throw new IllegalArgumentException("invalid NSAP address " +						   address);	}}voidrrFromWire(DNSInput in) throws IOException {	address = in.readByteArray();}voidrdataFromString(Tokenizer st, Name origin) throws IOException {	String address = st.getString();	this.address = checkAndConvertAddress(address);	if (this.address == null)		throw st.exception("invalid NSAP address " + address);}/** * Returns the NSAP address. */public StringgetAddress() {	return byteArrayToString(address, false);}voidrrToWire(DNSOutput out, Compression c, boolean canonical) {	out.writeByteArray(address);}StringrrToString() {	return "0x" + base16.toString(address);}}

⌨️ 快捷键说明

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