[Icecast] 2.4.1 and Meta update from DIFFERING IP's - Status?

"Thomas B. Rücker" thomas at ruecker.fi
Tue Feb 24 14:53:13 UTC 2015


On 02/24/2015 02:19 PM, Dean Sauer wrote:
> In looking at the archives... on this.. 
>
> Does 2.4.1 allow the METADATA UPDATE from DIFFERING IP's with SOURCE 
> CREDS?

no.

This has been addressed as part of the authentication system rewrite
towards 2.5.0.
You will be able to even do such things as defining a user who can
_only_ update metadata for a certain stream.

We're currently going through a beta version phase. While we do provide
packages for those, we do not recommend them for production use.

The 2.5 final release is expected during the second half of 2015.

> I am not finding the message(s) I thought were there that outlined 
> this....or is this still a WIP??? I remember discussion about it being 
> worked/added and just can't seem to find the outcome in my arhives... 

We verified if there is a bug in returning a HTTP 200 to a request.
https://trac.xiph.org/ticket/2037
The answer is: There is no bug, we return 400 to a raw request and 200
plus an human readable error message to a web request. Which means the
bug should have been closed already, I'll be doing that later today.

Adding an option to disable the restriction in 2.4.1 was not considered
due to the rewrite that was going to happen for 2.5.0 around the same time.

I'd recommend a simple web interface wrapper to work around this
restriction:
Simple form that requires authentication, which can be managed by you
freely.
This form then triggers a request to the Icecast metadata API using
admin credentials:
|http://example.org:8000/admin/metadata?mount=/mystream&mode=updinfo&song=This+has+been+updated|
This way you can restrict access on a per mount level. Should be rather
simple in a server side scripting language of your choice.

If you want to modify 2.4.1, then you could always revert this commit:
https://trac.xiph.org/changeset/15264
changing the two if statements from:
if (same_ip && plugin && plugin->set_tag)
back to:
if (plugin && plugin->set_tag)
Then rebuild Icecast.


Thomas





More information about the Icecast mailing list