protected override void SetDataFromReader(BinaryReader reader, int length) { Priority = reader.ReadNetworkOrderUInt16(); Weight = reader.ReadNetworkOrderUInt16(); Port = reader.ReadNetworkOrderUInt16(); Target = BonjourUtility.ReadHostnameFromBytes(reader); }
public static Question FromBinaryReader(BinaryReader reader) { Question question = new Question(); question.Name = BonjourUtility.ReadHostnameFromBytes(reader); question.Type = (ResourceRecordType)reader.ReadNetworkOrderUInt16(); question.Class = reader.ReadNetworkOrderUInt16(); return(question); }
public static ResourceRecord FromBinaryReader(BinaryReader reader) { // Hostname string hostname = BonjourUtility.ReadHostnameFromBytes(reader); // Record Type ResourceRecordType type = (ResourceRecordType)reader.ReadNetworkOrderUInt16(); ResourceRecord record; switch (type) { case ResourceRecordType.A: record = new ARecord(); break; case ResourceRecordType.PTR: record = new PTRRecord(); break; case ResourceRecordType.SRV: record = new SRVRecord(); break; case ResourceRecordType.TXT: record = new TXTRecord(); break; default: record = new ResourceRecord(); record.Type = type; break; } record.Name = hostname; // Class and Cache Flush bit ushort rrclass = reader.ReadNetworkOrderUInt16(); record.Class = (rrclass & 0x7fff); record.CacheFlush = rrclass.GetBit(15); // TTL record.TimeToLive = TimeSpan.FromSeconds(reader.ReadNetworkOrderInt32()); // Data ushort dataLength = reader.ReadNetworkOrderUInt16(); record.SetDataFromReader(reader, dataLength); return(record); }
protected override void SetDataFromReader(BinaryReader reader, int length) { DomainName = BonjourUtility.ReadHostnameFromBytes(reader); }