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 676020 - soup: Drop transferMode.dlna.org header
soup: Drop transferMode.dlna.org header
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
unspecified
Other All
: Normal normal
: 0.11.x
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks: 675876
 
 
Reported: 2012-05-14 10:48 UTC by Jens Georg
Modified: 2012-05-25 08:26 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
soup: Drop transferMode.dlna.org header (986 bytes, patch)
2012-05-14 10:49 UTC, Jens Georg
committed Details | Review

Description Jens Georg 2012-05-14 10:48:58 UTC
Using no header is better than using the wrong header.
Comment 1 Jens Georg 2012-05-14 10:49:00 UTC
Created attachment 213990 [details] [review]
soup: Drop transferMode.dlna.org header

Leave it to the application to decide on the header. No header at all
is better than having the wrong header as DLNA mandates that a missing
header has to be tolerated while a wrong header is an error.
Comment 2 Sebastian Dröge (slomo) 2012-05-14 13:45:21 UTC
This was the commit that added it btw. Did the DLNA spec change since this commit (to not mandate the use of the header) or was the original bug wrong?

commit af12e9eddac1c11f030ce2cc17bd5ca5fdd2d75e
Author: Zeeshan Ali <zeeshanak@gnome.org>
Date:   Fri Nov 21 13:43:29 2008 +0000

    ext/soup/gstsouphttpsrc.c: Add transferMode.dnla.org header to HTTP requests as this is required by the DLNA specs an...
    
    Original commit message from CVS:
    Patch by: Zeeshan Ali <zeeshanak at gnome dot org>
    * ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_build_message):
    Add transferMode.dnla.org header to HTTP requests as this is
    required by the DLNA specs and doesn't hurt in other situations.
    Fixes bug #561802.
Comment 3 Jens Georg 2012-05-14 14:04:09 UTC
No, the spec didn't change. But it's more harmful to have the wrong one ("Streaming" instead of "Interactive", resulting in error 406) than to have none at all, which the DLNA spec allows for backward compatibility.

The more fancy way would to do a HEAD request in the soupsrc and decide on the mime type and DLNA flags but I think it's overkill to do that in this element. If you like to rather have this, I'll provide a patch as well.

I've changed rygel's player implementation to do a proper transfer mode decision its own and set the correct header in the source-setup signal of playbin via the extra-headers property.
Comment 4 Sebastian Dröge (slomo) 2012-05-14 14:16:47 UTC
Will it have any negative side effects to drop the header now?
Comment 5 Jens Georg 2012-05-14 14:32:52 UTC
I don't think so.

Properly certified DLNA servers will select the proper streaming mode if the header is missing as this is defined in guideline 7.4.49.2 and also tested.

Pure UPnP-AV servers should completely ignore that header anyway. 

It could be that faulty (non-certified, as this is checked during the certification) DLNA servers might complain about the missing header. 

Rygel's player of unpatched rygel versions would work better (i.e. it would "fix" bug 665779)
Comment 6 Sebastian Dröge (slomo) 2012-05-15 07:17:09 UTC
commit d0e8222d963f5b1a311648870a2cf2964f8dfd89
Author: Jens Georg <mail@jensge.org>
Date:   Mon May 14 12:46:57 2012 +0200

    soup: Drop transferMode.dlna.org header
    
    Leave it to the application to decide on the header. No header at all
    is better than having the wrong header as DLNA mandates that a missing
    header has to be tolerated while a wrong header is an error.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=676020