diff options
author | Ionel Cristian Mărieș <contact@ionelmc.ro> | 2014-02-08 18:25:29 +0200 |
---|---|---|
committer | Ionel Cristian Mărieș <contact@ionelmc.ro> | 2014-02-08 18:25:29 +0200 |
commit | 464f6daa789b131afca843c66aa1657bc8ce8621 (patch) | |
tree | e59d27de53c9660abc6f6d064b9a8eca861419af | |
parent | 4284b1948a3e8d24a409efc7fd8417973e5f1ec9 (diff) | |
download | py-amqp-fix-celery-1847.tar.gz |
Don't read from the socket more than requested. This prevents stalling issues (fixes celery/celery#1847).fix-celery-1847
-rw-r--r-- | amqp/transport.py | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/amqp/transport.py b/amqp/transport.py index e24a72a..30765c9 100644 --- a/amqp/transport.py +++ b/amqp/transport.py @@ -207,7 +207,7 @@ class SSLTransport(_AbstractTransport): try: while len(rbuf) < n: try: - s = recv(131072) # see note above + s = recv(n - len(rbuf)) # see note above except socket.error as exc: # ssl.sock.read may cause ENOENT if the # operation couldn't be performed (Issue celery#1414). @@ -232,7 +232,6 @@ class SSLTransport(_AbstractTransport): raise IOError('Socket closed') s = s[n:] - class TCPTransport(_AbstractTransport): """Transport that deals directly with TCP socket.""" @@ -250,7 +249,7 @@ class TCPTransport(_AbstractTransport): try: while len(rbuf) < n: try: - s = recv(131072) + s = recv(n - len(rbuf)) except socket.error as exc: if not initial and exc.errno in _errnos: continue |