Skip to content

Commit d4aaddc

Browse files
Add socket exception callback
1 parent 898cfc4 commit d4aaddc

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
setup(
77
name="aio-udp-server",
8-
version="0.0.1",
8+
version="0.0.2",
99
description="Asyncio UDP server with traffic throttling",
1010
long_description=long_description,
1111
long_description_content_type="text/markdown",

src/aioudp/__init__.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ def _sock_recv(self, fut=None, registered=False):
4848
data, addr = self.sock.recvfrom(self.recv_max_size)
4949
except (BlockingIOError, InterruptedError):
5050
self.loop.add_reader(fd, self._sock_recv, fut, True)
51+
except Exception as e:
52+
fut.set_result(0)
53+
self.socket_error(e)
5154
else:
5255
fut.set_result((data, addr))
5356

@@ -69,6 +72,9 @@ def _sock_send(self, data, addr, fut=None, registered=False):
6972
bytes_sent = self.sock.sendto(data, addr)
7073
except (BlockingIOError, InterruptedError):
7174
self.loop.add_writer(fd, self._sock_send, data, addr, fut, True)
75+
except Exception as e:
76+
fut.set_result(0)
77+
self.socket_error(e)
7278
else:
7379
fut.set_result(bytes_sent)
7480

@@ -98,5 +104,8 @@ async def _recv_periodically(self):
98104
def connection_made(self):
99105
pass
100106

107+
def socket_error(self, e):
108+
pass
109+
101110
async def datagram_received(self, data, addr):
102-
pass
111+
pass

0 commit comments

Comments
 (0)