summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <wyskas@gmail.com>2010-08-27 14:32:49 +0200
committerAnton Khirnov <wyskas@gmail.com>2010-08-27 15:31:10 +0200
commit3aa5590c91dc0811664ffd4c05757d27eec84427 (patch)
treed1c0fb6d07683e5c6617440e468a60cc366cfa67
parentce97165643a4a36b233960ba8558b5b44cecdf93 (diff)
mpdsocket: don't raise exceptions
they just complicate the situation when working asynchronously
-rw-r--r--nephilim/mpdsocket.py18
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):
"""