From 3aa5590c91dc0811664ffd4c05757d27eec84427 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Fri, 27 Aug 2010 14:32:49 +0200 Subject: mpdsocket: don't raise exceptions they just complicate the situation when working asynchronously --- nephilim/mpdsocket.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/nephilim/mpdsocket.py b/nephilim/mpdsocket.py index 72d4ef9..005ddd2 100644 --- a/nephilim/mpdsocket.py +++ b/nephilim/mpdsocket.py @@ -20,12 +20,6 @@ import logging from PyQt4 import QtCore, QtNetwork from PyQt4.QtCore import pyqtSignal as Signal -class MPDError(Exception): - pass - -class ConnectionError(MPDError): - pass - class MPDSocket(QtCore.QObject): """ A dumb TCP/domain socket wrapper -- has a very basic understanding of MPD protocol. @@ -73,7 +67,10 @@ class MPDSocket(QtCore.QObject): """ self._logger.info('Connecting to MPD.') if self._sock: - raise ConnectionError('Stale socket found.') + if self._sock.state() == QtNetwork.QAbstractSocket.ConnectedState: + self._logger.warning('Already connected, disconnect first.') + else: + self._logger.warning('Stale socket found, discarding.') if not port: #assume Unix domain socket @@ -254,7 +251,8 @@ class MPDSocket(QtCore.QObject): self._logger.error('Malformed line: %s.'%line) if not self._sock.canReadLine() and not self._sock.waitForReadyRead(): - raise MPDError + self._logger.error('Reading server response timed out, disconnecting.') + return self.disconnect_mpd() line = self._readline() if subsystems: @@ -278,7 +276,9 @@ class MPDSocket(QtCore.QObject): raise StopIteration yield line if not self._sock.canReadLine() and not self._sock.waitForReadyRead(): - raise MPDError + self._logger.error('Reading server response timed out, disconnecting.') + self.disconnect_mpd() + raise StopIteration def _parse_discard(self, data): """ -- cgit v1.2.3