diff options
author | Max Dymond <max.dymond@metaswitch.com> | 2017-06-30 12:45:17 +0100 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2017-06-30 14:58:06 +0200 |
commit | 0362c778418a7c0594dae5537f91247ca1dae289 (patch) | |
tree | c6a6a016416537f2917b9f4ba3984ba6fce251d7 /tests/dictserver.py | |
parent | 9b387034ab5d0d98d1ef4b6c2d0d8cd2185081fb (diff) | |
download | curl-0362c778418a7c0594dae5537f91247ca1dae289.tar.gz |
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
Diffstat (limited to 'tests/dictserver.py')
-rwxr-xr-x | tests/dictserver.py | 39 |
1 files changed, 21 insertions, 18 deletions
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 <xnooptions> <msgid@msgid>\n" + self.request.sendall(rsp.encode("utf-8")) - # First, send a response to allow the server to continue. - rsp = "220 dictserver <xnooptions> <msgid@msgid>\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", |