diff --git a/httpcore/_backends/sync.py b/httpcore/_backends/sync.py index 7b7b417d..8977d999 100644 --- a/httpcore/_backends/sync.py +++ b/httpcore/_backends/sync.py @@ -77,7 +77,8 @@ def _perform_io( def read(self, max_bytes: int, timeout: typing.Optional[float] = None) -> bytes: exc_map: ExceptionMapping = {socket.timeout: ReadTimeout, OSError: ReadError} with map_exceptions(exc_map): - self._sock.settimeout(timeout) + if timeout: + self._sock.settimeout(timeout) return typing.cast( bytes, self._perform_io(partial(self.ssl_obj.read, max_bytes)) ) @@ -85,7 +86,8 @@ def read(self, max_bytes: int, timeout: typing.Optional[float] = None) -> bytes: def write(self, buffer: bytes, timeout: typing.Optional[float] = None) -> None: exc_map: ExceptionMapping = {socket.timeout: WriteTimeout, OSError: WriteError} with map_exceptions(exc_map): - self._sock.settimeout(timeout) + if timeout: + self._sock.settimeout(timeout) while buffer: nsent = self._perform_io(partial(self.ssl_obj.write, buffer)) buffer = buffer[nsent:] @@ -122,7 +124,8 @@ def __init__(self, sock: socket.socket) -> None: def read(self, max_bytes: int, timeout: typing.Optional[float] = None) -> bytes: exc_map: ExceptionMapping = {socket.timeout: ReadTimeout, OSError: ReadError} with map_exceptions(exc_map): - self._sock.settimeout(timeout) + if timeout: + self._sock.settimeout(timeout) return self._sock.recv(max_bytes) def write(self, buffer: bytes, timeout: typing.Optional[float] = None) -> None: @@ -132,7 +135,8 @@ def write(self, buffer: bytes, timeout: typing.Optional[float] = None) -> None: exc_map: ExceptionMapping = {socket.timeout: WriteTimeout, OSError: WriteError} with map_exceptions(exc_map): while buffer: - self._sock.settimeout(timeout) + if timeout: + self._sock.settimeout(timeout) n = self._sock.send(buffer) buffer = buffer[n:]