cls._ResponderIncrementCounter()
if not fromQueue.empty():
toQueue.put(request, True, cls._queueTimeout)
- if synthesize is None:
- response = fromQueue.get(True, cls._queueTimeout)
- if response:
- response = copy.copy(response)
- response.id = request.id
+ response = fromQueue.get(True, cls._queueTimeout)
+ if response:
+ response = copy.copy(response)
+ response.id = request.id
+
+ if synthesize is not None:
+ response = dns.message.make_response(request)
+ response.set_rcode(synthesize)
if not response:
- if synthesize is not None:
- response = dns.message.make_response(request)
- response.set_rcode(synthesize)
- elif cls._answerUnexpected:
+ if cls._answerUnexpected:
response = dns.message.make_response(request)
response.set_rcode(dns.rcode.SERVFAIL)
@classmethod
def sendUDPQuery(cls, query, response, useQueue=True, timeout=2.0, rawQuery=False):
- if useQueue:
+ if useQueue and response is not None:
cls._toResponderQueue.put(response, True, timeout)
if timeout:
for method in ("sendUDPQuery", "sendTCPQuery"):
sender = getattr(self, method)
- (_, receivedResponse) = sender(doquery, response)
+ (_, receivedResponse) = sender(doquery, response=None, useQueue=False)
self.assertEquals(receivedResponse, None)
class TestAdvancedQClass(DNSDistTest):
for method in ("sendUDPQuery", "sendTCPQuery"):
sender = getattr(self, method)
- (_, receivedResponse) = sender(query, response=None)
+ (_, receivedResponse) = sender(query, response=None, useQueue=False)
self.assertEquals(receivedResponse, None)
def testAdvancedQClassINAllow(self):
for method in ("sendUDPQuery", "sendTCPQuery"):
sender = getattr(self, method)
- (_, receivedResponse) = sender(query, response=None)
+ (_, receivedResponse) = sender(query, response=None, useQueue=False)
self.assertEquals(receivedResponse, None)
def testAdvancedOpcodeUpdateINAllow(self):
for method in ("sendUDPQuery", "sendTCPQuery"):
sender = getattr(self, method)
- (_, receivedResponse) = sender(query, response=None)
+ (_, receivedResponse) = sender(query, response=None, useQueue=False)
self.assertEquals(receivedResponse, None)
def testReplied(self):
for method in ("sendUDPQuery", "sendTCPQuery"):
sender = getattr(self, method)
- (_, receivedResponse) = sender(query, response=None)
+ (_, receivedResponse) = sender(query, response=None, useQueue=False)
self.assertEquals(receivedResponse, expectedResponse)
def testNoEDNS0Pass(self):
for method in ("sendUDPQuery", "sendTCPQuery"):
sender = getattr(self, method)
- (_, receivedResponse) = sender(query, response)
+ (_, receivedResponse) = sender(query, response, useQueue=False)
self.assertTrue(receivedResponse)
self.assertEquals(receivedResponse, expectedResponse)
self.assertEquals(response, receivedResponse)
# Verify that queries with trailing data don't make it through.
- (_, receivedResponse) = sender(raw, response, rawQuery=True)
+ (_, receivedResponse) = sender(raw, response, rawQuery=True, useQueue=False)
self.assertEquals(receivedResponse, None)
def testTrailingRemoved(self):
for method in ("sendUDPQuery", "sendTCPQuery"):
sender = getattr(self, method)
- (_, receivedResponse) = sender(raw, response, rawQuery=True)
+ (_, receivedResponse) = sender(raw, response=None, rawQuery=True, useQueue=False)
self.assertTrue(receivedResponse)
expectedResponse.flags = receivedResponse.flags
self.assertEquals(receivedResponse, expectedResponse)
for method in ("sendUDPQuery", "sendTCPQuery"):
sender = getattr(self, method)
- (_, receivedResponse) = sender(raw, response, rawQuery=True)
+ (_, receivedResponse) = sender(raw, response=None, rawQuery=True, useQueue=False)
self.assertTrue(receivedResponse)
expectedResponse.flags = receivedResponse.flags
self.assertEquals(receivedResponse, expectedResponse)
for method in ("sendUDPQuery", "sendTCPQuery"):
sender = getattr(self, method)
- (_, receivedResponse) = sender(raw, response, rawQuery=True)
+ (_, receivedResponse) = sender(raw, response=None, rawQuery=True, useQueue=False)
self.assertTrue(receivedResponse)
expectedResponse.flags = receivedResponse.flags
self.assertEquals(receivedResponse, expectedResponse)
for method in ("sendUDPQuery", "sendTCPQuery"):
sender = getattr(self, method)
- (_, receivedResponse) = sender(raw, response, rawQuery=True)
+ (_, receivedResponse) = sender(raw, response=None, rawQuery=True, useQueue=False)
self.assertTrue(receivedResponse)
expectedResponse.flags = receivedResponse.flags
self.assertEquals(receivedResponse, expectedResponse)