public string ReadDomainName() { StringBuilder name = new StringBuilder(); int length = 0; // get the length of the first label while ((length = ReadByte()) != 0) { // top 2 bits set denotes domain name compression and to reference elsewhere if ((length & 0xc0) == 0xc0) { // work out the existing domain name, copy this pointer RecordReader newRecordReader = new RecordReader(m_Data, (length & 0x3f) << 8 | ReadByte()); name.Append(newRecordReader.ReadDomainName()); return(name.ToString()); } // if not using compression, copy a char at a time to the domain name while (length > 0) { name.Append(ReadChar()); length--; } name.Append('.'); } if (name.Length == 0) { return("."); } else { return(name.ToString()); } }
public RR(RecordReader rr) { TimeLived = 0; NAME = rr.ReadDomainName(); Type = (RecordType)rr.ReadUInt16(); Class = (Class)rr.ReadUInt16(); TTL = rr.ReadUInt32(); RDLENGTH = rr.ReadUInt16(); RECORD = rr.ReadRecord(this, Type); }
public Question(RecordReader rr) { QName = rr.ReadDomainName(); QType = (QType)rr.ReadUInt16(); QClass = (QClass)rr.ReadUInt16(); }
public RR(RecordReader rr) { TimeLived = 0; NAME = rr.ReadDomainName(); Type = (RecordType)rr.ReadUInt16(); Class = (Class)rr.ReadUInt16(); TTL = rr.ReadUInt32(); RDLENGTH = rr.ReadUInt16(); RECORD = rr.ReadRecord(this, Type); }
public Question(RecordReader rr) { QName = rr.ReadDomainName(); QType = (QType)rr.ReadUInt16(); QClass = (QClass)rr.ReadUInt16(); }
public string ReadDomainName() { StringBuilder name = new StringBuilder(); int length = 0; // get the length of the first label while ((length = ReadByte()) != 0) { // top 2 bits set denotes domain name compression and to reference elsewhere if ((length & 0xc0) == 0xc0) { // work out the existing domain name, copy this pointer RecordReader newRecordReader = new RecordReader(m_Data, (length & 0x3f) << 8 | ReadByte()); name.Append(newRecordReader.ReadDomainName()); return name.ToString(); } // if not using compression, copy a char at a time to the domain name while (length > 0) { name.Append(ReadChar()); length--; } name.Append('.'); } if (name.Length == 0) return "."; else return name.ToString(); }