X-Git-Url: http://git.kaliko.me/?p=python-musicpd.git;a=blobdiff_plain;f=musicpd.py;h=68cd8625f3c71c4d7c510c7a461cb91883d62f71;hp=47eb7b5cd3afc61306c50413b6835329163927f1;hb=a8a2060756f1811f59febe11bd75521989674b83;hpb=3a949c076873a90eb02ff71f71f9df58b08854cf diff --git a/musicpd.py b/musicpd.py index 47eb7b5..68cd862 100644 --- a/musicpd.py +++ b/musicpd.py @@ -28,7 +28,7 @@ HELLO_PREFIX = "OK MPD " ERROR_PREFIX = "ACK " SUCCESS = "OK" NEXT = "list_OK" -VERSION = '0.6.0' +VERSION = '0.6.1' #: seconds before a tcp connection attempt times out (overriden by MPD_TIMEOUT env. var.) CONNECTION_TIMEOUT = 30 @@ -307,8 +307,9 @@ class MPDClient: if mpd_host_env[0]: # A password is actually set self.pwd = mpd_host_env[0] - self.host = mpd_host_env[1] - else: + if mpd_host_env[1]: + self.host = mpd_host_env[1] + elif mpd_host_env[1]: # No password set but leading @ is an abstract socket self.host = '@'+mpd_host_env[1] else: @@ -405,6 +406,8 @@ class MPDClient: parts.append('{0!s}'.format(Range(arg))) else: parts.append('"%s"' % escape(str(arg))) + if '\n' in ' '.join(parts): + raise CommandError('new line found in the command!') self._write_line(" ".join(parts)) def _read_binary(self, amount): @@ -568,7 +571,7 @@ class MPDClient: obj['data'] = self._read_binary(amount) except IOError as err: raise ConnectionError('Error reading binary content: %s' % err) - if len(obj['data']) != amount: + if len(obj['data']) != amount: # can we ever get there? raise ConnectionError('Error reading binary content: ' 'Expects %sB, got %s' % (amount, len(obj['data']))) # Fetches trailing new line @@ -708,6 +711,9 @@ class MPDClient: self._reset() def fileno(self): + """Return the socket’s file descriptor (a small integer). + This is useful with :py:obj:`select.select`. + """ if self._sock is None: raise ConnectionError("Not connected") return self._sock.fileno()