/// <summary>
 /// processes a ANAME Question, populated the response with any matching results pulled from the database store
 /// </summary>
 /// <param name="response">DnsResponse instance containing information about the question that will
 /// have any corresponding answer records populated upon return</param>
 protected void ProcessANAMEQuestion(DnsResponse response)
 {
     using (RecordRetrievalServiceClient client = m_recordRetrievalServiceSettings.CreateRecordRetrievalClient())
     {
         client.GetANAMERecords(response.Question.Domain, response.AnswerRecords);
         if (!response.HasAnswerRecords)
         {
             client.GetCNAMERecords(response.Question.Domain, response.AnswerRecords);
         }
     }
 }
 void ProcessNSQuestion(DnsResponse response)
 {
     using (RecordRetrievalServiceClient client = m_recordRetrievalServiceSettings.CreateRecordRetrievalClient())
     {
         client.GetNSRecords(response.Question.Domain, response.AnswerRecords);
         if (!response.HasAnswerRecords)
         {
             return;
         }
         //
         // Also resolve the NS Record's actual address, to save roundtrips
         //
         foreach (NSRecord record in response.AnswerRecords.NS)
         {
             client.GetANAMERecords(record.NameServer, response.AdditionalRecords);
         }
     }
 }
 /// <summary>
 /// processes a MX Question, populated the response with any matching results pulled from the database store
 /// </summary>
 /// <param name="response">DnsResponse instance containing information about the question that will
 /// have any corresponding answer records populated upon return</param>
 protected void ProcessMXQuestion(DnsResponse response)
 {
     using (RecordRetrievalServiceClient client = m_recordRetrievalServiceSettings.CreateRecordRetrievalClient())
     {
         client.GetMXRecords(response.Question.Domain, response.AnswerRecords);
         if (!response.HasAnswerRecords)
         {
             return;
         }
         //
         // additionally return each MX record's IP address
         //
         foreach (MXRecord mxRecord in response.AnswerRecords.MX)
         {
             client.GetANAMERecords(mxRecord.Exchange, response.AdditionalRecords);
         }
     }
 }