亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? zone.java

?? linux下建立JAVA虛擬機(jī)的源碼KAFFE
?? JAVA
字號(hào):
// Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org)package org.xbill.DNS;import java.io.*;import java.util.*;/** * A DNS Zone.  This encapsulates all data related to a Zone, and provides * convenient lookup methods. * * @author Brian Wellington */public class Zone {/** A primary zone */public static final int PRIMARY = 1;/** A secondary zone */public static final int SECONDARY = 2;private Map data;private int type;private Name origin;private Object originNode;private int dclass = DClass.IN;private RRset NS;private SOARecord SOA;private boolean hasWild;class ZoneIterator implements Iterator {	private Iterator zentries;	private RRset [] current;	private int count;	private boolean wantLastSOA;	ZoneIterator(boolean axfr) {		zentries = data.entrySet().iterator();		wantLastSOA = axfr;		RRset [] sets = allRRsets(originNode);		current = new RRset[sets.length];		for (int i = 0, j = 2; i < sets.length; i++) {			int type = sets[i].getType();			if (type == Type.SOA)				current[0] = sets[i];			else if (type == Type.NS)				current[1] = sets[i];			else				current[j++] = sets[i];		}	}	public boolean	hasNext() {		return (current != null || wantLastSOA);	}	public Object	next() {		if (!hasNext()) {			throw new NoSuchElementException();		}		if (current == null && wantLastSOA) {			wantLastSOA = false;			return oneRRset(originNode, Type.SOA);		}		Object set = current[count++];		if (count == current.length) {			current = null;			while (zentries.hasNext()) {				Map.Entry entry = (Map.Entry) zentries.next();				if (entry.getKey().equals(origin))					continue;				RRset [] sets = allRRsets(entry.getValue());				if (sets.length == 0)					continue;				current = sets;				count = 0;				break;			}		}		return set;	}	public void	remove() {		throw new UnsupportedOperationException();	}}private voidvalidate() throws IOException {	originNode = exactName(origin);	if (originNode == null)		throw new IOException(origin + ": no data specified");	RRset rrset = oneRRset(originNode, Type.SOA);	if (rrset == null || rrset.size() != 1)		throw new IOException(origin +				      ": exactly 1 SOA must be specified");	Iterator it = rrset.rrs();	SOA = (SOARecord) it.next();	NS = oneRRset(originNode, Type.NS);	if (NS == null)		throw new IOException(origin + ": no NS set specified");}private final voidmaybeAddRecord(Record record) throws IOException {	int type = record.getType();	Name name = record.getName();	if (type == Type.SOA && !name.equals(origin)) {		throw new IOException("SOA owner " + name +				      " does not match zone origin " +				      origin);	}	if (name.subdomain(origin))		addRecord(record);}/** * Creates a Zone from the records in the specified master file. * @param zone The name of the zone. * @param file The master file to read from. * @see Master */publicZone(Name zone, String file) throws IOException {	data = new HashMap();	type = PRIMARY;	if (zone == null)		throw new IllegalArgumentException("no zone name specified");	Master m = new Master(file, zone);	Record record;	origin = zone;	while ((record = m.nextRecord()) != null)		maybeAddRecord(record);	validate();}/** * Creates a Zone from an array of records. * @param zone The name of the zone. * @param records The records to add to the zone. * @see Master */publicZone(Name zone, Record [] records) throws IOException {	data = new HashMap();	type = PRIMARY;	if (zone == null)		throw new IllegalArgumentException("no zone name specified");	origin = zone;	for (int i = 0; i < records.length; i++)		maybeAddRecord(records[i]);	validate();}private voidfromXFR(ZoneTransferIn xfrin) throws IOException, ZoneTransferException {	data = new HashMap();	type = SECONDARY;	if (xfrin.getType() != Type.AXFR)		throw new IllegalArgumentException("zones can only be " +						   "created from AXFRs");	origin = xfrin.getName();	List records = xfrin.run();	for (Iterator it = records.iterator(); it.hasNext(); ) {		Record record = (Record) it.next();		maybeAddRecord(record);	}	validate();}/** * Creates a Zone by doing the specified zone transfer. * @param xfrin The incoming zone transfer to execute. * @see ZoneTransferIn */publicZone(ZoneTransferIn xfrin) throws IOException, ZoneTransferException {	fromXFR(xfrin);}/** * Creates a Zone by performing a zone transfer to the specified host. * @see ZoneTransferIn */publicZone(Name zone, int dclass, String remote)throws IOException, ZoneTransferException{	ZoneTransferIn xfrin = ZoneTransferIn.newAXFR(zone, remote, null);	xfrin.setDClass(dclass);	fromXFR(xfrin);}/** Returns the Zone's origin */public NamegetOrigin() {	return origin;}/** Returns the Zone origin's NS records */public RRsetgetNS() {	return NS;}/** Returns the Zone's SOA record */public SOARecordgetSOA() {	return SOA;}/** Returns the Zone's class */public intgetDClass() {	return dclass;}private synchronized ObjectexactName(Name name) {	return data.get(name);}private synchronized RRset []allRRsets(Object types) {	if (types instanceof List) {		List typelist = (List) types;		return (RRset []) typelist.toArray(new RRset[typelist.size()]);	} else {		RRset set = (RRset) types;		return new RRset [] {set};	}}private synchronized RRsetoneRRset(Object types, int type) {	if (type == Type.ANY)		throw new IllegalArgumentException("oneRRset(ANY)");	if (types instanceof List) {		List list = (List) types;		for (int i = 0; i < list.size(); i++) {			RRset set = (RRset) list.get(i);			if (set.getType() == type)				return set;		}	} else {		RRset set = (RRset) types;		if (set.getType() == type)			return set;	}	return null;}private synchronized RRsetfindRRset(Name name, int type) {	Object types = exactName(name);	if (types == null)		return null;	return oneRRset(types, type);}private synchronized voidaddRRset(Name name, RRset rrset) {	if (!hasWild && name.isWild())		hasWild = true;	Object types = data.get(name);	if (types == null) {		data.put(name, rrset);		return;	}	int type = rrset.getType();	if (types instanceof List) {		List list = (List) types;		for (int i = 0; i < list.size(); i++) {			RRset set = (RRset) list.get(i);			if (set.getType() == type) {				list.set(i, rrset);				return;			}		}		list.add(rrset);	} else {		RRset set = (RRset) types;		if (set.getType() == type)			data.put(name, rrset);		else {			LinkedList list = new LinkedList();			list.add(set);			list.add(rrset);			data.put(name, list);		}	}}private synchronized voidremoveRRset(Name name, int type) {	Object types = data.get(name);	if (types == null) {		return;	}	if (types instanceof List) {		List list = (List) types;		for (int i = 0; i < list.size(); i++) {			RRset set = (RRset) list.get(i);			if (set.getType() == type) {				list.remove(i);				if (list.size() == 0)					data.remove(name);				return;			}		}	} else {		RRset set = (RRset) types;		if (set.getType() != type)			return;		data.remove(name);	}}private synchronized SetResponselookup(Name name, int type) {	int labels;	int olabels;	int tlabels;	RRset rrset;	Name tname;	Object types;	SetResponse sr;	if (!name.subdomain(origin))		return SetResponse.ofType(SetResponse.NXDOMAIN);	labels = name.labels();	olabels = origin.labels();	for (tlabels = olabels; tlabels <= labels; tlabels++) {		boolean isOrigin = (tlabels == olabels);		boolean isExact = (tlabels == labels);		if (isOrigin)			tname = origin;		else if (isExact)			tname = name;		else			tname = new Name(name, labels - tlabels);		types = exactName(tname);		if (types == null)			continue;		/* If this is a delegation, return that. */		if (!isOrigin) {			RRset ns = oneRRset(types, Type.NS);			if (ns != null)				return new SetResponse(SetResponse.DELEGATION,						       ns);		}		/* If this is an ANY lookup, return everything. */		if (isExact && type == Type.ANY) {			sr = new SetResponse(SetResponse.SUCCESSFUL);			RRset [] sets = allRRsets(types);			for (int i = 0; i < sets.length; i++)				sr.addRRset(sets[i]);			return sr;		}		/*		 * If this is the name, look for the actual type or a CNAME.		 * Otherwise, look for a DNAME.		 */		if (isExact) {			rrset = oneRRset(types, type);			if (rrset != null) {				sr = new SetResponse(SetResponse.SUCCESSFUL);				sr.addRRset(rrset);				return sr;			}			rrset = oneRRset(types, Type.CNAME);			if (rrset != null)				return new SetResponse(SetResponse.CNAME,						       rrset);		} else {			rrset = oneRRset(types, Type.DNAME);			if (rrset != null)				return new SetResponse(SetResponse.DNAME,						       rrset);		}		/* We found the name, but not the type. */		if (isExact)			return SetResponse.ofType(SetResponse.NXRRSET);	}	if (hasWild) {		for (int i = 0; i < labels - olabels; i++) {			tname = name.wild(i + 1);			types = exactName(tname);			if (types == null)				continue;			rrset = oneRRset(types, type);			if (rrset != null) {				sr = new SetResponse(SetResponse.SUCCESSFUL);				sr.addRRset(rrset);				return sr;			}		}	}	return SetResponse.ofType(SetResponse.NXDOMAIN);}/**      * Looks up Records in the Zone.  This follows CNAMEs and wildcards. * @param name The name to look up * @param type The type to look up * @return A SetResponse object * @see SetResponse */ public SetResponsefindRecords(Name name, int type) {	return lookup(name, type);}/** * Looks up Records in the zone, finding exact matches only. * @param name The name to look up * @param type The type to look up * @return The matching RRset * @see RRset */ public RRsetfindExactMatch(Name name, int type) {	return oneRRset(exactName(name), type);}/** * Adds an RRset to the Zone * @param rrset The RRset to be added * @see RRset */public voidaddRRset(RRset rrset) {	Name name = rrset.getName();	addRRset(name, rrset);}/** * Adds a Record to the Zone * @param r The record to be added * @see Record */public voidaddRecord(Record r) {	Name name = r.getName();	int type = r.getRRsetType();	synchronized (this) {		RRset rrset = findRRset(name, type);		if (rrset == null)			rrset = new RRset(r);		addRRset(name, rrset);	}}/** * Removes a record from the Zone * @param r The record to be removed * @see Record */public voidremoveRecord(Record r) {	Name name = r.getName();	int type = r.getRRsetType();	synchronized (this) {		RRset rrset = findRRset(name, type);		if (rrset == null)			return;		rrset.deleteRR(r);		if (rrset.size() == 0)			removeRRset(name, type);	}}/** * Returns an Iterator over the RRsets in the zone. */public Iteratoriterator() {	return new ZoneIterator(false);}/** * Returns an Iterator over the RRsets in the zone that can be used to * construct an AXFR response.  This is identical to {@link #iterator} except * that the SOA is returned at the end as well as the beginning. */public IteratorAXFR() {	return new ZoneIterator(true);}private voidnodeToString(StringBuffer sb, Object node) {	RRset [] sets = allRRsets(node);	for (int i = 0; i < sets.length; i++) {		RRset rrset = sets[i];		Iterator it = rrset.rrs();		while (it.hasNext())			sb.append(it.next() + "\n");		it = rrset.sigs();		while (it.hasNext())			sb.append(it.next() + "\n");	}}/** * Returns the contents of the Zone in master file format. */public StringtoMasterFile() {	Iterator zentries = data.entrySet().iterator();	StringBuffer sb = new StringBuffer();	nodeToString(sb, originNode);	while (zentries.hasNext()) {		Map.Entry entry = (Map.Entry) zentries.next();		if (!origin.equals(entry.getKey()))			nodeToString(sb, entry.getValue());	}	return sb.toString();}/** * Returns the contents of the Zone as a string (in master file format). */public StringtoString() {	return toMasterFile();}}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
不卡的av网站| 欧美在线观看视频在线| 麻豆精品久久精品色综合| 亚洲一区二区三区视频在线播放| 中文字幕成人在线观看| 欧美激情一区二区三区四区| 久久久美女毛片| 国产亚洲一区二区三区在线观看| 精品久久久网站| 久久午夜老司机| 国产亚洲一区二区三区| 亚洲国产成人在线| 亚洲视频免费在线观看| 亚洲综合一二区| 天堂一区二区在线| 麻豆精品国产91久久久久久| 久久成人18免费观看| 国产毛片精品视频| 成人午夜av影视| 9i看片成人免费高清| 一本久久a久久免费精品不卡| 欧美视频精品在线| 日韩一区二区麻豆国产| 国产亚洲一区字幕| 一区二区三区视频在线看| 亚洲成av人片| 精品在线观看视频| 成人黄色小视频| 在线亚洲人成电影网站色www| 欧美色图天堂网| 日韩精品一区二区三区四区视频 | 久久蜜桃一区二区| 欧美xingq一区二区| 中文字幕一区二区三区在线不卡 | 色八戒一区二区三区| 黄色资源网久久资源365| 视频在线观看一区二区三区| 日韩成人免费在线| 成人精品视频一区| 精品日韩一区二区三区| 国产日韩欧美亚洲| 亚洲麻豆国产自偷在线| 日韩一区欧美二区| 懂色av一区二区夜夜嗨| 欧美天堂一区二区三区| 欧美精品一区二区三区一线天视频 | 精品亚洲免费视频| 95精品视频在线| 日韩一本二本av| 亚洲视频你懂的| 国产在线视频一区二区三区| 日本精品免费观看高清观看| 日韩免费高清电影| 一区二区三区日韩在线观看| 国内精品伊人久久久久av影院 | 国产精品素人一区二区| 洋洋av久久久久久久一区| 狠狠久久亚洲欧美| 欧美日韩成人综合在线一区二区| 久久日韩精品一区二区五区| 亚洲韩国精品一区| 国产高清成人在线| 在线播放一区二区三区| 国产精品不卡一区| 韩国精品在线观看| 欧美日韩一级二级| 亚洲欧美综合色| 狂野欧美性猛交blacked| 日本韩国欧美三级| 国产欧美精品一区| 久久精品国产一区二区| 欧美日本乱大交xxxxx| 国产精品国产馆在线真实露脸| 老鸭窝一区二区久久精品| 欧美色涩在线第一页| 亚洲天堂av老司机| 国产成人av电影在线播放| 欧美成人欧美edvon| 亚洲3atv精品一区二区三区| 91碰在线视频| 亚洲综合在线免费观看| 国产91精品精华液一区二区三区| 日韩一区二区在线观看视频| 亚洲一区二区美女| 91免费看视频| 亚洲国产精品精华液ab| 国产一区视频网站| 欧美电影免费观看高清完整版在| 亚洲成av人综合在线观看| 日本精品视频一区二区| 亚洲美女免费在线| 91在线视频网址| 国产精品久久看| 成人性生交大片| 国产欧美日产一区| 盗摄精品av一区二区三区| 久久精品人人爽人人爽| 国产成人日日夜夜| 精品国产1区二区| 激情综合五月婷婷| 欧美zozo另类异族| 国产一区二区在线观看免费| 日韩欧美色电影| 美女一区二区三区在线观看| 欧美美女视频在线观看| 亚洲成a人在线观看| 欧美视频一区二区三区| 午夜欧美在线一二页| 精品视频123区在线观看| 亚洲国产精品久久久久婷婷884 | 国产精品欧美一区喷水| 国产xxx精品视频大全| 亚洲国产精品av| 懂色av一区二区三区免费看| 国产精品久久久久婷婷| 91色在线porny| 亚洲一区国产视频| 欧美精品tushy高清| 久久精品噜噜噜成人av农村| www精品美女久久久tv| 国产精品18久久久久久vr| 欧美—级在线免费片| 91丨porny丨国产入口| 亚洲一区自拍偷拍| 91精品国产综合久久香蕉的特点| 麻豆精品一区二区综合av| 国产欧美日韩综合精品一区二区| yourporn久久国产精品| 一区二区三区四区五区视频在线观看| 欧美日韩国产小视频| 久久国产综合精品| 国产精品久久久久久久岛一牛影视 | 亚洲在线免费播放| 337p亚洲精品色噜噜噜| 国产一区二区三区黄视频| 中文字幕中文乱码欧美一区二区| 一本大道av一区二区在线播放| 五月天国产精品| 久久精品无码一区二区三区| 色综合天天综合| 日本大胆欧美人术艺术动态| 国产亚洲美州欧州综合国| 色综合久久中文综合久久97| 日本亚洲最大的色成网站www| 国产欧美日本一区视频| 精品视频在线免费| 国产福利一区在线| 亚洲r级在线视频| 欧美国产日韩亚洲一区| 欧美日韩精品专区| 国产不卡视频一区二区三区| 亚洲va欧美va人人爽午夜 | 免费的成人av| 中文字幕制服丝袜一区二区三区 | 色嗨嗨av一区二区三区| 免费不卡在线视频| 一区二区三区日韩在线观看| 久久精品人人爽人人爽| 欧美人牲a欧美精品| 国产91综合一区在线观看| 天天综合天天做天天综合| 国产午夜亚洲精品羞羞网站| 欧美日韩国产综合一区二区 | 国产欧美一区二区精品秋霞影院 | 日韩欧美第一区| 色一情一乱一乱一91av| 国内精品不卡在线| 丝袜美腿亚洲综合| 亚洲色图一区二区| 久久久亚洲精品石原莉奈| 欧美男同性恋视频网站| 97aⅴ精品视频一二三区| 国产乱色国产精品免费视频| 秋霞成人午夜伦在线观看| 亚洲欧美另类小说| 国产欧美精品一区二区色综合朱莉| 日韩亚洲欧美综合| 欧美日韩精品高清| 色婷婷一区二区| www.av精品| 粉嫩久久99精品久久久久久夜| 久久精品国产77777蜜臀| 亚洲午夜一区二区三区| 综合分类小说区另类春色亚洲小说欧美 | 911精品产国品一二三产区| 91尤物视频在线观看| 粉嫩一区二区三区在线看| 老司机精品视频在线| 蜜臀av国产精品久久久久 | 99久精品国产| 国产91富婆露脸刺激对白| 精品一区二区三区免费播放| 日本欧美一区二区| 午夜视频一区在线观看| 亚洲一二三四在线| 亚洲与欧洲av电影| 一区二区三区精品| 亚洲黄色免费网站| 亚洲精品高清在线| 亚洲精品一二三|