summaryrefslogtreecommitdiffstats
path: root/Lib/asyncio/selector_events.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/asyncio/selector_events.py')
-rw-r--r--Lib/asyncio/selector_events.py17
1 files changed, 6 insertions, 11 deletions
diff --git a/Lib/asyncio/selector_events.py b/Lib/asyncio/selector_events.py
index 3bad198..3efa4d2 100644
--- a/Lib/asyncio/selector_events.py
+++ b/Lib/asyncio/selector_events.py
@@ -771,6 +771,8 @@ class _SelectorDatagramTransport(_SelectorTransport):
data, addr = self._sock.recvfrom(self.max_size)
except (BlockingIOError, InterruptedError):
pass
+ except OSError as exc:
+ self._protocol.error_received(exc)
except Exception as exc:
self._fatal_error(exc)
else:
@@ -800,9 +802,8 @@ class _SelectorDatagramTransport(_SelectorTransport):
return
except (BlockingIOError, InterruptedError):
self._loop.add_writer(self._sock_fd, self._sendto_ready)
- except ConnectionRefusedError as exc:
- if self._address:
- self._fatal_error(exc)
+ except OSError as exc:
+ self._protocol.error_received(exc)
return
except Exception as exc:
self._fatal_error(exc)
@@ -822,9 +823,8 @@ class _SelectorDatagramTransport(_SelectorTransport):
except (BlockingIOError, InterruptedError):
self._buffer.appendleft((data, addr)) # Try again later.
break
- except ConnectionRefusedError as exc:
- if self._address:
- self._fatal_error(exc)
+ except OSError as exc:
+ self._protocol.error_received(exc)
return
except Exception as exc:
self._fatal_error(exc)
@@ -835,8 +835,3 @@ class _SelectorDatagramTransport(_SelectorTransport):
self._loop.remove_writer(self._sock_fd)
if self._closing:
self._call_connection_lost(None)
-
- def _force_close(self, exc):
- if self._address and isinstance(exc, ConnectionRefusedError):
- self._protocol.connection_refused(exc)
- super()._force_close(exc)