That is exactly like i would expect that it is right now.
At this point libShout is using HTTP, and so he mount should be escaped, i agree.
If Mixx does this by escaping the string before passing it to libShout, that problem would be solved.
But i also means, that libshout will always use the escaped name. The question i ask is, if this is correct wenn you do initialy set the source.
----
static int create_http_request(shout_t *self)
{
char *auth;
char *ai;
int ret = SHOUTERR_MALLOC;
/* this is lazy code that relies on the only error from queue_* being
* SHOUTERR_MALLOC */
do {
if (queue_printf(self, "SOURCE %s HTTP/1.0\r\n", self->mount))
break;
-----
I think that is not the case.
FIrstly: I'd say encoding would be wrong here, because the resource name is "/live?stream_id=1&tracking=2" and not "live%3Fstream_id%3D1%26tracking%3D2" (i have striped"/" here).
I suspect it would not connect to / create the correct (or better desired) mount on the server.
Kevin already described this already in an way, when he said that this " requires listeners to escape the characters in the URI"
Secondly: Encoded values are decoded somewhere (thats the point isn't it? :) ), and would result in the original string which now (again) does not exist because we've specified another name when connecting..
I'll come back to what i said: i think the expected behavior is achieved when encoding in libShout (for the metadataupdateurl only).
I am saying expected behavior because according to
(Did not find something REALLY official on the icecast website)
"The mountpoint itself is specified as the path part of the URL." - no mention of query parameters. But that doesn't mean that some hoster build something around it, which requires these parameters. I looked around on spreaker (a a mentioned example) a bit, and to me it looks like they use something thats just like close enough to icecast so that most of it works already out of the box.
That is exactly like i would expect that it is right now.
At this point libShout is using HTTP, and so he mount should be escaped, i agree.
If Mixx does this by escaping the string before passing it to libShout, that problem would be solved.
But i also means, that libshout will always use the escaped name. The question i ask is, if this is correct wenn you do initialy set the source.
---- http_request( shout_t *self)
static int create_
{
char *auth;
char *ai;
int ret = SHOUTERR_MALLOC;
/* this is lazy code that relies on the only error from queue_* being
* SHOUTERR_MALLOC */
do {
if (queue_printf(self, "SOURCE %s HTTP/1.0\r\n", self->mount))
break;
-----
I think that is not the case.
FIrstly: I'd say encoding would be wrong here, because the resource name is "/live? stream_ id=1&tracking= 2" and not "live%3Fstream_ id%3D1% 26tracking% 3D2" (i have striped"/" here).
I suspect it would not connect to / create the correct (or better desired) mount on the server.
Kevin already described this already in an way, when he said that this " requires listeners to escape the characters in the URI"
Secondly: Encoded values are decoded somewhere (thats the point isn't it? :) ), and would result in the original string which now (again) does not exist because we've specified another name when connecting..
I'll come back to what i said: i think the expected behavior is achieved when encoding in libShout (for the metadataupdateurl only).
I am saying expected behavior because according to
https:/ /gist.github. com/ePirat/ adc3b8ba00d85b7 e3870#specifyin g-mountpoint- information
(Did not find something REALLY official on the icecast website)
"The mountpoint itself is specified as the path part of the URL." - no mention of query parameters. But that doesn't mean that some hoster build something around it, which requires these parameters. I looked around on spreaker (a a mentioned example) a bit, and to me it looks like they use something thats just like close enough to icecast so that most of it works already out of the box.