diff options
author | Anton Khirnov <wyskas@gmail.com> | 2010-08-27 14:32:49 +0200 |
---|---|---|
committer | Anton Khirnov <wyskas@gmail.com> | 2010-08-27 15:31:10 +0200 |
commit | 3aa5590c91dc0811664ffd4c05757d27eec84427 (patch) | |
tree | d1c0fb6d07683e5c6617440e468a60cc366cfa67 | |
parent | ce97165643a4a36b233960ba8558b5b44cecdf93 (diff) |
mpdsocket: don't raise exceptions
they just complicate the situation when working asynchronously
-rw-r--r-- | nephilim/mpdsocket.py | 18 |
1 files 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): """ |