Client connection and disconnection methods override

This commit is contained in:
Ben 2019-06-07 00:47:14 +01:00
parent 63fd52e93d
commit a9d58f926b
2 changed files with 7 additions and 5 deletions

View File

@ -158,6 +158,9 @@ class Penguin(Spheniscidae):
return True return True
def _client_connected(self):
super()._client_connected()
def __repr__(self): def __repr__(self):
if self.data is not None: if self.data is not None:
return '<Penguin ID=\'{}\' Username=\'{}\'>'.format(self.data.id, self.data.username) return '<Penguin ID=\'{}\' Username=\'{}\'>'.format(self.data.id, self.data.username)

View File

@ -1,4 +1,3 @@
from houdini import handlers
from houdini.handlers import XMLPacket, XTPacket from houdini.handlers import XMLPacket, XTPacket
from asyncio import IncompleteReadError from asyncio import IncompleteReadError
@ -126,10 +125,10 @@ class Spheniscidae:
else: else:
self.logger.warn('Received invalid XML data!') self.logger.warn('Received invalid XML data!')
async def __client_connected(self): async def _client_connected(self):
self.logger.info('Client %s connected', self.peer_name) self.logger.info('Client %s connected', self.peer_name)
async def __client_disconnected(self): async def _client_disconnected(self):
del self.server.peers_by_ip[self.peer_name] del self.server.peers_by_ip[self.peer_name]
self.logger.info('Client %s disconnected', self.peer_name) self.logger.info('Client %s disconnected', self.peer_name)
@ -142,7 +141,7 @@ class Spheniscidae:
await self.__handle_xt_data(data) await self.__handle_xt_data(data)
async def run(self): async def run(self):
await self.__client_connected() await self._client_connected()
while not self.__writer.is_closing(): while not self.__writer.is_closing():
try: try:
data = await self.__reader.readuntil( data = await self.__reader.readuntil(
@ -156,7 +155,7 @@ class Spheniscidae:
self.__writer.close() self.__writer.close()
except ConnectionResetError: except ConnectionResetError:
self.__writer.close() self.__writer.close()
await self.__client_disconnected() await self._client_disconnected()
def __repr__(self): def __repr__(self):
return '<Spheniscidae {}>'.format(self.peer_name) return '<Spheniscidae {}>'.format(self.peer_name)