Skip to content

Commit

Permalink
Add socket exception callback
Browse files Browse the repository at this point in the history
  • Loading branch information
bashkirtsevich committed Jun 5, 2019
1 parent 898cfc4 commit d4aaddc
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

setup(
name="aio-udp-server",
version="0.0.1",
version="0.0.2",
description="Asyncio UDP server with traffic throttling",
long_description=long_description,
long_description_content_type="text/markdown",
Expand Down
11 changes: 10 additions & 1 deletion src/aioudp/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@ def _sock_recv(self, fut=None, registered=False):
data, addr = self.sock.recvfrom(self.recv_max_size)
except (BlockingIOError, InterruptedError):
self.loop.add_reader(fd, self._sock_recv, fut, True)
except Exception as e:
fut.set_result(0)
self.socket_error(e)
else:
fut.set_result((data, addr))

Expand All @@ -69,6 +72,9 @@ def _sock_send(self, data, addr, fut=None, registered=False):
bytes_sent = self.sock.sendto(data, addr)
except (BlockingIOError, InterruptedError):
self.loop.add_writer(fd, self._sock_send, data, addr, fut, True)
except Exception as e:
fut.set_result(0)
self.socket_error(e)
else:
fut.set_result(bytes_sent)

Expand Down Expand Up @@ -98,5 +104,8 @@ async def _recv_periodically(self):
def connection_made(self):
pass

def socket_error(self, e):
pass

async def datagram_received(self, data, addr):
pass
pass

0 comments on commit d4aaddc

Please sign in to comment.