X-Git-Url: http://git.kaliko.me/?p=python-musicpd.git;a=blobdiff_plain;f=mpd.py;h=373bd1672d835d6a0ecad229856d55cc3168d4f7;hp=4ad4804a23a17c1a384af068d8a287601d913ca7;hb=92a072f152417f607bd4cc5f549972ba76a15cad;hpb=1b144cef816a2917dd4338bfdf6e88525c310501 diff --git a/mpd.py b/mpd.py index 4ad4804..373bd16 100644 --- a/mpd.py +++ b/mpd.py @@ -236,6 +236,7 @@ class MPDClient(object): def _read_line(self): line = self._rfile.readline() if not line.endswith("\n"): + self.disconnect() raise ConnectionError("Connection lost while reading line") line = line.rstrip("\n") if line.startswith(ERROR_PREFIX): @@ -414,7 +415,7 @@ class MPDClient(object): if sock is not None: sock.close() if err is not None: - raise err + raise ConnectionError(str(err)) else: raise ConnectionError("getaddrinfo returns an empty list") @@ -434,9 +435,15 @@ class MPDClient(object): raise def disconnect(self): - self._rfile.close() - self._wfile.close() - self._sock.close() + if isinstance(self._rfile, socket._fileobject): + print('closing r socket') + self._rfile.close() + if isinstance(self._wfile, socket._fileobject): + print('closing w socket') + self._wfile.close() + if isinstance(self._sock, socket.socket): + print('closing socket') + self._sock.close() self._reset() def fileno(self):