Skip EINTR errors on raw sockets
This commit is contained in:
parent
baf9aaf26c
commit
1776e2edcc
@ -13,6 +13,7 @@
|
||||
"""
|
||||
|
||||
from socket import _fileobject
|
||||
import errno
|
||||
import socket
|
||||
|
||||
|
||||
@ -29,7 +30,13 @@ class FileSocket(_fileobject):
|
||||
"""Read data from the socket as if it were a file."""
|
||||
if self._sock is None:
|
||||
return None
|
||||
data = self._sock.recv(size)
|
||||
while True:
|
||||
try:
|
||||
data = self._sock.recv(size)
|
||||
break
|
||||
except socket.error as serr:
|
||||
if serr.errno != errno.EINTR:
|
||||
raise
|
||||
if data is not None:
|
||||
return data
|
||||
|
||||
|
@ -1294,6 +1294,9 @@ class XMLStream(object):
|
||||
try:
|
||||
sent += self.socket.send(data[sent:])
|
||||
count += 1
|
||||
except Socket.error as serr:
|
||||
if serr.errno != errno.EINTR:
|
||||
raise
|
||||
except ssl.SSLError as serr:
|
||||
if tries >= self.ssl_retry_max:
|
||||
log.debug('SSL error: max retries reached')
|
||||
@ -1715,6 +1718,9 @@ class XMLStream(object):
|
||||
try:
|
||||
sent += self.socket.send(enc_data[sent:])
|
||||
count += 1
|
||||
except Socket.error as serr:
|
||||
if serr.errno != errno.EINTR:
|
||||
raise
|
||||
except ssl.SSLError as serr:
|
||||
if tries >= self.ssl_retry_max:
|
||||
log.debug('SSL error: max retries reached')
|
||||
|
Loading…
x
Reference in New Issue
Block a user