From 0362c778418a7c0594dae5537f91247ca1dae289 Mon Sep 17 00:00:00 2001 From: Max Dymond Date: Fri, 30 Jun 2017 12:45:17 +0100 Subject: test1450: fix up DICT server in torture mode As per https://github.com/curl/curl/pull/1615, the DICT server is a little spammy in torture mode due to the sockets being torn down unexpectedly. Fix this by adding some error handling to the handling function. Closes #1629 --- tests/dictserver.py | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) (limited to 'tests') diff --git a/tests/dictserver.py b/tests/dictserver.py index 45cc15505..a41a8a0d6 100755 --- a/tests/dictserver.py +++ b/tests/dictserver.py @@ -52,34 +52,37 @@ class DictHandler(socketserver.BaseRequestHandler): """ Simple function which responds to all queries with a 552. """ + try: + # First, send a response to allow the server to continue. + rsp = "220 dictserver \n" + self.request.sendall(rsp.encode("utf-8")) - # First, send a response to allow the server to continue. - rsp = "220 dictserver \n" - self.request.sendall(rsp.encode("utf-8")) + # Receive the request. + data = self.request.recv(1024).strip() + log.debug("[DICT] Incoming data: %r", data) - # Receive the request. - data = self.request.recv(1024).strip() - log.debug("[DICT] Incoming data: %r", data) + if VERIFIED_REQ in data: + log.debug("[DICT] Received verification request from test " + "framework") + response_data = VERIFIED_RSP.format(pid=os.getpid()) + else: + log.debug("[DICT] Received normal request") + response_data = "No matches" - if VERIFIED_REQ in data: - log.debug("[DICT] Received verification request from test " - "framework") - response_data = VERIFIED_RSP.format(pid=os.getpid()) - else: - log.debug("[DICT] Received normal request") - response_data = "No matches" + # Send back a failure to find. + response = "552 {0}\n".format(response_data) + log.debug("[DICT] Responding with %r", response) + self.request.sendall(response.encode("utf-8")) - # Send back a failure to find. - response = "552 {0}\n".format(response_data) - log.debug("[DICT] Responding with %r", response) - self.request.sendall(response.encode("utf-8")) + except IOError: + log.exception("[DICT] IOError hit during request") def get_options(): parser = argparse.ArgumentParser() parser.add_argument("--port", action="store", default=9016, - type=int, help="port to listen on") + type=int, help="port to listen on") parser.add_argument("--verbose", action="store", type=int, default=0, help="verbose output") parser.add_argument("--pidfile", action="store", -- cgit v1.2.3