Package: pianobar
Version: 2012.12.01-1
Severity: important
Tags: patch, upstream

anthony@Watt:~$ pianobar 
Welcome to pianobar (2012.12.01)! Press ? for a list of commands.
(i) Login... Network error: TLS read failed.

This is only with Pandora One high-quality audio I believe. A patch
(not written by me) is available at
<https://gist.github.com/pvstodghill/4078695>

I am attaching a version of that patch suitable for plopping in
debian/patches. I have tested this, and it fixes the problem.

This bug unfortunately means I get to install a local version of
pianobar on my machines.

Upstream discussion is at
<https://github.com/PromyLOPh/pianobar/issues/321> and
<https://github.com/PromyLOPh/pianobar/pull/336>. I don't understand the
reason not to apply, so I've asked on the pull request.

-- System Information:
Debian Release: 7.0
  APT prefers testing
  APT policy: (500, 'testing'), (130, 'unstable'), (120, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.7-trunk-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages pianobar depends on:
ii  libao4       1.1.0-2
ii  libc6        2.13-37
ii  libfaad2     2.7-8
ii  libgcrypt11  1.5.0-3
ii  libgnutls26  2.12.20-2
ii  libmad0      0.15.1b-7
ii  libpiano0    2012.12.01-1

pianobar recommends no packages.

Versions of packages pianobar suggests:
ii  libaudio-scrobbler-perl  0.01-2.1

-- no debconf information
Index: pianobar-2012.12.01/src/libwaitress/waitress.c
===================================================================
--- pianobar-2012.12.01.orig/src/libwaitress/waitress.c	2012-12-01 12:03:23.000000000 -0500
+++ pianobar-2012.12.01/src/libwaitress/waitress.c	2013-02-13 02:32:03.000000000 -0500
@@ -537,6 +537,14 @@
 
 	ssize_t ret = gnutls_record_recv (waith->request.tlsSession, buf, size);
 	if (ret < 0) {
+		if (ret == GNUTLS_E_UNEXPECTED_PACKET_LENGTH
+#ifdef GNUTLS_E_PREMATURE_TERMINATION
+                      || ret == GNUTLS_E_PREMATURE_TERMINATION
+#endif
+                   ) {
+			*retSize = 0;
+			return waith->request.readWriteRet;
+		}
 		return WAITRESS_RET_TLS_READ_ERR;
 	} else {
 		*retSize = ret;

Reply via email to