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 703694 - libsoup does not support GET when protocol != http or https (i.e., use of protocol alias like daap:)
libsoup does not support GET when protocol != http or https (i.e., use of pro...
Status: RESOLVED FIXED
Product: libsoup
Classification: Core
Component: API
2.42.x
Other All
: Normal normal
: ---
Assigned To: libsoup-maint@gnome.bugs
libsoup-maint@gnome.bugs
Depends on:
Blocks:
 
 
Reported: 2013-07-06 00:24 UTC by W. Michael Petullo
Modified: 2013-08-26 15:02 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
SoupServer: add :http-aliases and :https-aliases properties (12.36 KB, patch)
2013-08-25 14:52 UTC, Dan Winship
committed Details | Review

Description W. Michael Petullo 2013-07-06 00:24:24 UTC
I maintain dmapd (https://www.flyn.org/projects/dmapd/), a server that provides music shares to iTunes and compatible clients. iTunes is odd in that it makes HTTP requests in the form of:

        GET daap://host:port/path HTTP/1.1

It seems that somewhere between libsoup 2.28.2 and 2.42.2, libsoup began checking the requested protocol for "http:" or "https:" using SOUP_URI_VALID_FOR_HTTP. In the case of "daap:", libsoup returns a 400 error to the client, seemingly without invoking any application callback functions.

I would like libsoup to happily process the request above, despite the "daap:".

Dan Winship suggested by email changing soup-message-server-io.c so that it is less strict or adding "http-aliases" and "https-aliases" properties to SoupServer.
Comment 1 Dan Winship 2013-08-25 14:52:38 UTC
Created attachment 253058 [details] [review]
SoupServer: add :http-aliases and :https-aliases properties

Add :http-aliases and :https-aliases properties to SoupServer, to
allow it to handle requests like:

    GET daap://host:port/path HTTP/1.1
Comment 2 Dan Winship 2013-08-25 14:53:32 UTC
could you try this patch? It actually should fix things for you even without you needing to set the property (since it makes the default be to accept all protocols again), but you can also try setting :http-aliases to [ "daap", NULL ]
Comment 3 W. Michael Petullo 2013-08-25 18:56:38 UTC
The patch works fine for me. With it applied to libsoup, dmapd is able to share music with iTunes again. As you said in comment #2, I did not have to make any changes to dmapd after I replaced libsoup.
Comment 4 Dan Winship 2013-08-26 15:02:56 UTC
pushed. will be in 2.43.91