Repository: thrift Updated Branches: refs/heads/master a131b8f92 -> ab2793aa9
THRIFT-2466: Improper error handling for SSL/TLS connections that don't complete a handshake Client: Python Patch: Benoit Sigoure Project: http://git-wip-us.apache.org/repos/asf/thrift/repo Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/ab2793aa Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/ab2793aa Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/ab2793aa Branch: refs/heads/master Commit: ab2793aa966d3a40a89fe4b392d3cc286721f36d Parents: a131b8f Author: Roger Meier <ro...@apache.org> Authored: Mon Apr 21 21:20:00 2014 +0200 Committer: Roger Meier <ro...@apache.org> Committed: Mon Apr 21 21:20:00 2014 +0200 ---------------------------------------------------------------------- lib/py/src/server/TProcessPoolServer.py | 2 ++ lib/py/src/server/TServer.py | 8 ++++++++ 2 files changed, 10 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/thrift/blob/ab2793aa/lib/py/src/server/TProcessPoolServer.py ---------------------------------------------------------------------- diff --git a/lib/py/src/server/TProcessPoolServer.py b/lib/py/src/server/TProcessPoolServer.py index 7a695a8..7369466 100644 --- a/lib/py/src/server/TProcessPoolServer.py +++ b/lib/py/src/server/TProcessPoolServer.py @@ -56,6 +56,8 @@ class TProcessPoolServer(TServer): while self.isRunning.value: try: client = self.serverTransport.accept() + if not client: + continue self.serveClient(client) except (KeyboardInterrupt, SystemExit): return 0 http://git-wip-us.apache.org/repos/asf/thrift/blob/ab2793aa/lib/py/src/server/TServer.py ---------------------------------------------------------------------- diff --git a/lib/py/src/server/TServer.py b/lib/py/src/server/TServer.py index 2f24842..976a8f3 100644 --- a/lib/py/src/server/TServer.py +++ b/lib/py/src/server/TServer.py @@ -75,6 +75,8 @@ class TSimpleServer(TServer): self.serverTransport.listen() while True: client = self.serverTransport.accept() + if not client: + continue itrans = self.inputTransportFactory.getTransport(client) otrans = self.outputTransportFactory.getTransport(client) iprot = self.inputProtocolFactory.getProtocol(itrans) @@ -103,6 +105,8 @@ class TThreadedServer(TServer): while True: try: client = self.serverTransport.accept() + if not client: + continue t = threading.Thread(target=self.handle, args=(client,)) t.setDaemon(self.daemon) t.start() @@ -182,6 +186,8 @@ class TThreadPoolServer(TServer): while True: try: client = self.serverTransport.accept() + if not client: + continue self.clients.put(client) except Exception, x: logging.exception(x) @@ -214,6 +220,8 @@ class TForkingServer(TServer): self.serverTransport.listen() while True: client = self.serverTransport.accept() + if not client: + continue try: pid = os.fork()