private static void ReadRecords(Internal.ByteReader reader, IList <DNS.RR> records, int count) { for (int i = 0; i < count; i++) { DNS.RRBase rrbase = new DNS.RRBase(); ((Internal.IResponseReader)rrbase).ReadResponse(reader); DNS.RR rr = DNS.RR.CreateInstance(rrbase); rr.ReadRDATA(reader); records.Add(rr); } }
void Internal.IResponseReader.ReadResponse(Internal.ByteReader reader) { // header ((Internal.IResponseReader)Header).ReadResponse(reader); // question section for (int i = 0; i < Header.QDCOUNT; i++) { DNS.Question q = new DNS.Question(); ((Internal.IResponseReader)q).ReadResponse(reader); Questions.Add(q); } // answer section ReadRecords(reader, AnswerRecordsList, Header.ANCOUNT); // authority records section. ReadRecords(reader, AuthorityRecordsList, Header.NSCOUNT); // additional records section ReadRecords(reader, AdditionalRecordsList, Header.ARCOUNT); }