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 + -
显示快捷键?