Catch exception in io_callback

This commit is contained in:
badaix 2022-07-01 12:14:19 +02:00
parent 550f7c5b3f
commit fd4d82126f

View file

@ -448,24 +448,28 @@ class MPDWrapper(object):
"code": -32700, "message": "Parse error", "data": str(e)}, "id": id}) "code": -32700, "message": "Parse error", "data": str(e)}, "id": id})
def io_callback(self, fd, event): def io_callback(self, fd, event):
logger.debug("IO event %r on fd %r" % (event, fd)) try:
if event & GLib.IO_HUP: logger.error(f'IO event "{event}" on fd "{fd}" (type: "{type(fd)}"')
logger.debug("IO_HUP") if event & GLib.IO_HUP:
return True logger.debug("IO_HUP")
elif event & GLib.IO_IN: return True
chunk = fd.read() elif event & GLib.IO_IN:
for char in chunk: chunk = fd.read()
if char == '\n': for char in chunk:
logger.info(f'Received: {self._buffer}') if char == '\n':
self.control(self._buffer) logger.info(f'Received: {self._buffer}')
self._buffer = '' self.control(self._buffer)
else: self._buffer = ''
self._buffer += char else:
self._buffer += char
return True
except Exception as e:
logger.error(f'Exception in io_callback: "{str(e)}"')
return True return True
def socket_callback(self, fd, event): def socket_callback(self, fd, event):
try: try:
logger.debug("Socket event %r on fd %r" % (event, fd)) logger.debug(f'Socket event "{event}" on fd "{fd}"')
if event & GLib.IO_HUP: if event & GLib.IO_HUP:
self.reconnect() self.reconnect()
return True return True
@ -485,8 +489,8 @@ class MPDWrapper(object):
updated = True updated = True
self.idle_enter() self.idle_enter()
return True return True
except: except Exception as e:
logger.error('Exception in socket_callback') logger.error(f'Exception in socket_callback: "{str(e)}"')
self.reconnect() self.reconnect()
return True return True