private DNSResponse GetResponse(DNSRequest request, List<IPEndPoint> dnsServers, int timeout)
{
request.header.ID = m_Unique;
request.header.RD = m_Recursion;
DNSResponse response = null;
if (m_TransportType == TransportType.Udp)
{
response = UdpRequest(request, dnsServers, timeout);
}
if (m_TransportType == TransportType.Tcp)
{
response = TcpRequest(request, dnsServers, timeout);
}
if (response == null)
{
response = new DNSResponse();
response.Error = "Unknown TransportType";
}
Question question = request.Questions[0];
string questionKey = question.QClass + "-" + question.QType + "-" + question.QName;
AddToCache(response, questionKey);
return response;
}