Comment 25 for bug 1329202

Thanks for all the effort you're putting in this issue. Florian perfectly
described the issue we got on our side (Spreaker's icecast custom server):

> When updating the metadata an HTTP GET is send via an second connection.
The mountname is one of its paramters. As such icecast unescapes the
paramters as its done by any HTTP server. I do not know what the resullt
actually is (hard to say what result out of undefined characters for an
encoding) but its clear it doesn't equal the mount name.

To clarify our use case: at Spreaker we currently use query string to
configure per-connection options to the server (it's not the opensource
icecast server, but a server completely written by us that follows the
Icecast2 specifications). For example, we support auto-sharing of your
stream on social networks: if you wanna enable it, just add "?shares=FB" to
share it on Facebook, or "?hidden=true" to keep it privately, ad so on.
Since an user could have multiple streams with the same mount path but
different options at the same time, when we receive the HTTP metadata
request we have to compare the full mountpoint (including query string) and
not just the path, in order to correctly route metadata to the right stream.

Once your changes will be ready, I will be more than happy to test a
patched build against Spreaker.

2015-11-11 22:55 GMT+01:00 Daniel Schürmann <email address hidden>:

> Thank you all for the input. I think we have a plan :-)
>
> @Kevin: Do you agree? Do you still have fun to fix this bug again? (Sorry
> for pointing you such a fuzzy bug in the first place)
>
> I think I will rephrase the bug title.
>
> ** Summary changed:
>
> - Live Broadcasting - Mount is not escaped when sending metadata
> + Live Broadcasting - Warn if Mount is not escaped when sending metadata
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1329202
>
> Title:
> Live Broadcasting - Warn if Mount is not escaped when sending metadata
>
> Status in Mixxx:
> Confirmed
>
> Bug description:
> The "Live Broadcasting" > "Mount" field value is sent as an
> *unescaped* query string parameter when Mixxx sends metadata to the
> icecast server.
>
> This lead to the following bug (actual behavior):
> - Mount set to "/live?stream_id=1&tracking=2"
> - Mixxx builds the metadata URI like
> "/admin/metadata?mode=updinfo&mount=/live?stream_id=1&tracking=2&song=title"
> - As you can see, the mount query string parameter is *not escaped*, so
> it's not possible to correctly parse the "mount" parameter
>
> How it should be (expected behavior):
> - Mount set to "/live?stream_id=1&tracking=2"
> - Mixxx builds the metadata URI like
> "/admin/metadata?mode=updinfo&mount=2Flive%3Fstream_id%3D1%26tracking%3D2&song=title"
>
>
> Mixxx: 1.11.0
> Operating System: OSX 10.8.5
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/mixxx/+bug/1329202/+subscriptions
>