After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 345895 - Audioscrobbler handshake fails if transparent proxy is being used
Audioscrobbler handshake fails if transparent proxy is being used
Status: RESOLVED FIXED
Product: rhythmbox
Classification: Other
Component: Plugins (other)
0.9.4.1
Other All
: Normal normal
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
Depends on:
Blocks:
 
 
Reported: 2006-06-25 19:06 UTC by Jim Hague
Modified: 2006-06-27 23:11 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Jim Hague 2006-06-25 19:06:36 UTC
Please describe the problem:
Debian bug #370751
Package: rhythmbox
Version: 0.9.4.1-6
Severity: normal

I have enabled and configured the Audioscrobbler plugin, but 
communication with the server fails.

The relevant part of the log from running with '-d' is:

(17:38:50) [0x814f8c0] [rb_audioscrobbler_do_handshake] 
../../shell/rb-audioscrobbler.c:674: Performing handshake with 
Audioscrobbler server: 
http://post.audioscrobbler.com/?hs=true&p=1.1&c=rbx&v=0.9.4.1&u=bearcave
(17:38:50) [0x814f8c0] [rb_audioscrobbler_parse_response] 
../../shell/rb-audioscrobbler.c:520: Parsing response, status=7
(17:38:50) [0x814f8c0] [rb_audioscrobbler_do_handshake_cb] 
../../shell/rb-audioscrobbler.c:703: Response: 3
(17:38:50) [0x814f8c0] [rb_audioscrobbler_do_handshake_cb] 
../../shell/rb-audioscrobbler.c:704: Handshake failed

I have re-entered the password several times in case of a mistype. The 
URL loads fine when copied and pasted into a browser.

-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.15-1-486
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)

This bug is still present in Debian experimental package 0.9.4.90-1

Steps to reproduce:


Actual results:


Expected results:


Does this happen every time?


Other information:
I have done some debugging on this and tracked down the cause of the 
problem.

My web access is from behind a transparent proxy. In 
rb_autoscrobbler_perform(), the libsoup message is created and then set to 
HTTP/1.0.

 	SoupMessage *msg;
	  	  	
  	msg = soup_message_new (post_data == NULL ? "GET" : "POST", url);
  	soup_message_set_http_version (msg, SOUP_HTTP_1_0);

One effect of setting HTTP/1.0 is that libsoup doesn't send the HTTP Host: 
header with a request. The Audioscrobbler request sent is:

	GET /?hs=true&p=1.1&c=rbx&v=0.9.4.1&u=bearcave HTTP/1.0

Of course, this fails at the transparent cache. Remove the call to 
soup_message_set_http_version(), HTTP/1.1 is used, the Host: header sent and 
everything works fine.

I'm not sure why the Audioscrobbler plugin requires HTTP 1.0. It works fine 
for me with HTTP 1.1. That being said, I'm not sure either why libsoup 
doesn't send the Host: header with HTTP 1.0, as I understand that it is an 
optional header in 1.0.

In the short term, the work-around is to explicitly specify the network proxy 
in Gnome.
Comment 1 Jonathan Matthew 2006-06-27 23:11:48 UTC
I'm not sure why we set HTTP/1.0 there, and it does indeed work without it, so I've removed it.