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

📄 update.java

📁 linux下建立JAVA虚拟机的源码KAFFE
💻 JAVA
字号:
// Copyright (c) 2003-2004 Brian Wellington (bwelling@xbill.org)package org.xbill.DNS;import java.io.*;import java.util.*;/** * A helper class for constructing dynamic DNS (DDNS) update messages. * * @author Brian Wellington */public class Update extends Message {private Name origin;private int dclass;/** * Creates an update message. * @param zone The name of the zone being updated. * @param dclass The class of the zone being updated. */publicUpdate(Name zone, int dclass) {	super();	if (!zone.isAbsolute())		throw new RelativeNameException(zone);	DClass.check(dclass);        getHeader().setOpcode(Opcode.UPDATE);	Record soa = Record.newRecord(zone, Type.SOA, DClass.IN);	addRecord(soa, Section.QUESTION);	this.origin = zone;	this.dclass = dclass;}/** * Creates an update message.  The class is assumed to be IN. * @param zone The name of the zone being updated. */publicUpdate(Name zone) {	this(zone, DClass.IN);}private voidnewPrereq(Record rec) {	addRecord(rec, Section.PREREQ);}private voidnewUpdate(Record rec) {	addRecord(rec, Section.UPDATE);}/** * Inserts a prerequisite that the specified name exists; that is, there * exist records with the given name in the zone. */public voidpresent(Name name) {	newPrereq(Record.newRecord(name, Type.ANY, DClass.ANY, 0));}/** * Inserts a prerequisite that the specified rrset exists; that is, there * exist records with the given name and type in the zone. */public voidpresent(Name name, int type) {	newPrereq(Record.newRecord(name, type, DClass.ANY, 0));}/** * Parses a record from the string, and inserts a prerequisite that the * record exists.  Due to the way value-dependent prequisites work, the * condition that must be met is that the set of all records with the same  * and type in the update message must be identical to the set of all records * with that name and type on the server. * @throws IOException The record could not be parsed. */public voidpresent(Name name, int type, String record) throws IOException {	newPrereq(Record.fromString(name, type, dclass, 0, record, origin));}/** * Parses a record from the tokenizer, and inserts a prerequisite that the * record exists.  Due to the way value-dependent prequisites work, the * condition that must be met is that the set of all records with the same  * and type in the update message must be identical to the set of all records * with that name and type on the server. * @throws IOException The record could not be parsed. */public voidpresent(Name name, int type, Tokenizer tokenizer) throws IOException {	newPrereq(Record.fromString(name, type, dclass, 0, tokenizer, origin));}/** * Inserts a prerequisite that the specified record exists.  Due to the way * value-dependent prequisites work, the condition that must be met is that * the set of all records with the same and type in the update message must * be identical to the set of all records with that name and type on the server. */public voidpresent(Record record) {	newPrereq(record);}/** * Inserts a prerequisite that the specified name does not exist; that is, * there are no records with the given name in the zone. */public voidabsent(Name name) {	newPrereq(Record.newRecord(name, Type.ANY, DClass.NONE, 0));}/** * Inserts a prerequisite that the specified rrset does not exist; that is, * there are no records with the given name and type in the zone. */public voidabsent(Name name, int type) {	newPrereq(Record.newRecord(name, type, DClass.NONE, 0));}/** * Parses a record from the string, and indicates that the record * should be inserted into the zone. * @throws IOException The record could not be parsed. */public voidadd(Name name, int type, long ttl, String record) throws IOException {	newUpdate(Record.fromString(name, type, dclass, ttl, record, origin));}/** * Parses a record from the tokenizer, and indicates that the record * should be inserted into the zone. * @throws IOException The record could not be parsed. */public voidadd(Name name, int type, long ttl, Tokenizer tokenizer) throws IOException {	newUpdate(Record.fromString(name, type, dclass, ttl, tokenizer,				    origin));}/** * Indicates that the record should be inserted into the zone. */public voidadd(Record record) {	newUpdate(record);}/** * Indicates that the records should be inserted into the zone. */public voidadd(Record [] records) {	for (int i = 0; i < records.length; i++)		add(records[i]);}/** * Indicates that all of the records in the rrset should be inserted into the * zone. */public voidadd(RRset rrset) {	for (Iterator it = rrset.rrs(); it.hasNext(); )		add((Record) it.next());}/** * Indicates that all records with the given name should be deleted from * the zone. */public voiddelete(Name name) {	newUpdate(Record.newRecord(name, Type.ANY, DClass.ANY, 0));}/** * Indicates that all records with the given name and type should be deleted * from the zone. */public voiddelete(Name name, int type) {	newUpdate(Record.newRecord(name, type, DClass.ANY, 0));}/** * Parses a record from the string, and indicates that the record * should be deleted from the zone. * @throws IOException The record could not be parsed. */public voiddelete(Name name, int type, String record) throws IOException {	newUpdate(Record.fromString(name, type, DClass.NONE, 0, record,				    origin));}/** * Parses a record from the tokenizer, and indicates that the record * should be deleted from the zone. * @throws IOException The record could not be parsed. */public voiddelete(Name name, int type, Tokenizer tokenizer) throws IOException {	newUpdate(Record.fromString(name, type, DClass.NONE, 0, tokenizer,				    origin));}/** * Indicates that the specified record should be deleted from the zone. */public voiddelete(Record record) {	newUpdate(record.withDClass(DClass.NONE, 0));}/** * Indicates that the records should be deleted from the zone. */public voiddelete(Record [] records) {	for (int i = 0; i < records.length; i++)		delete(records[i]);}/** * Indicates that all of the records in the rrset should be deleted from the * zone. */public voiddelete(RRset rrset) {	for (Iterator it = rrset.rrs(); it.hasNext(); )		delete((Record) it.next());}/** * Parses a record from the string, and indicates that the record * should be inserted into the zone replacing any other records with the * same name and type. * @throws IOException The record could not be parsed. */public voidreplace(Name name, int type, long ttl, String record) throws IOException {	delete(name, type);	add(name, type, ttl, record);}/** * Parses a record from the tokenizer, and indicates that the record * should be inserted into the zone replacing any other records with the * same name and type. * @throws IOException The record could not be parsed. */public voidreplace(Name name, int type, long ttl, Tokenizer tokenizer) throws IOException{	delete(name, type);	add(name, type, ttl, tokenizer);}/** * Indicates that the record should be inserted into the zone replacing any * other records with the same name and type. */public voidreplace(Record record) {	delete(record.getName(), record.getType());	add(record);}/** * Indicates that the records should be inserted into the zone replacing any * other records with the same name and type as each one. */public voidreplace(Record [] records) {	for (int i = 0; i < records.length; i++)		replace(records[i]);}/** * Indicates that all of the records in the rrset should be inserted into the * zone replacing any other records with the same name and type. */public voidreplace(RRset rrset) {	delete(rrset.getName(), rrset.getType());	for (Iterator it = rrset.rrs(); it.hasNext(); )		add((Record) it.next());}}

⌨️ 快捷键说明

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