summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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):
"""