Re: source questions & intentions to patch: yp-timing & auth

Robin Gareus <[email protected]>
Newsgroups gmane.comp.audio.icecast.devel
Message-ID <[email protected]>
Hi Niv,

On 04/19/2011 07:07 AM, Niv Sardi wrote:
> 
> Hi Robin,
> 
> First, please let me state that I'm not xiph, nor an IceCast maintainer,
> all I'm saying here are my views, but, as nobody answered your mail, I
> guess it's better than nothing.

Thanks. Your answer is very much appreciated.

> Robin Gareus <[email protected]> writes:
>> Looking at the SVN repo: there's 30+ commits since the 2.6.2 release;
>> the last one from August 2009. Are there any intentions to roll a
>> release anytime soon? Are there any more recent branches?
> 
> Basically, IceCast is vastly unmaintained, that said, kh[0] maintains
> some code, that is supposed to be quite a bit more advanced.
> 
> [0] http://www.xiphicecast.webspace.virginmedia.com/

thanks for the link; never crossed my mind to look on virginmedia.com :)

>> I'm currently looking into extending icecast2 (more below) and am
>> wondering if I should base the patches on 2.6.2+debian-fixes or
>> work from svn-trunk?
> 
>  I based my patches (see mailing list history) on current SVN (and so
> think you should too =D, maybe even on my un-applied patches ?).

How are your experiences regarding stability (mem-leaks, crackability)
with running svn-trunk?

> I've
> kept working a bit on IceCast, and am thinking of putting up a git tree
> somewhere soon (as soon as I can clean my current state).

BTW. 'git svn' is a bit tricky - because of the svn externals in
icecast2. I've used git://github.com/andrep/git-svn-clone-externals.git
and needed to fix the module/branch regexps in as well as symlink paths.
It's a bit OT. Let me know if you're interested and I'll elaborate. OTOH
it looks like you already got that part working :)

>> We are using a cluster of icecast servers as decentralized
>> stream-servers for theartcollider.org project and rely on the
>> yellow-pages protocol to gather information about available
>> streams/servers.
> 
> nice, btw, neewbie question, is there an OpenSource generic, prefered
> implementation of a yp server ? I googled a bit and didn't find anything
> too obvious.

Not that I know. But it's not complicated to write one; take a look at
http://git.citu.info/?p=tacyp.git;a=summary for inspiration.

>> Basically I'm interested in
>>   (1) making YP timing configurable (more frequent updates <30sec)
>>   (2) adding a decentralized authentication mechanism: a user can use
>>   the same login for a set of mounts on all servers in the cluster
>>
>> I've tackled (1) already and am pondering (2):
> 
> Awesome, patches welcome =)
> 
>> The current per-mounpoint auth requires a pre-defined mountpoint as well
>> as sharing the config-file among all servers. I do envisage an
>> authentication mechanism that can can be shared among a group of servers
>> and allows dynamic allocations of mountpoints/credentials.
> 
> Well, with master/slave mode you can actually get your config pushed to
> all servers, doesn't that help you ?

No, because I don't know the servers. It's decentralized network.

Each participant just installs his/her icecast server and points the
YP-URL to us. If said participant/artists is an individual, there's no
problem with password, but if it's an institution, they like to delegate
auth.

>> It'd be very cool to use OAuth for that but it'd break compatibility
>> with too many source-clients.. so the current idea is to patch icecast2
>> to call an external service/executable in order to verify access (most
>> flexibile) and/or make icecast perform a HTTP request to an auth-server
>> that returns 200 or 403 (most portable).
> 
> That would be really cool to have, please share patches =)
> 
> But I think having it call an outside program is not really elegant nor
> efficient.
indeed, just pragmatic and easy for prototyping. Anyway:

icecast2 trunk actually implements auth_url.c which can query some
remote-server for authentication (added Jan 2009 rev.15621).

It requires a minor fix [1] if one only wishes to do source but not
listener authentication. I've also added 'catch-all' mountpoint option
to delegate all authentication to a remote-server.

> http://thread.gmane.org/gmane.comp.audio.icecast.devel/1692/focus=1705

I'm taking about source auth, not listener auth. Here all streams are
public, in fact I've added a "candid" mode that automatically publishes
streams :)

The patch for fine-grained YP-timing [2] applies (with a few hunks
offset) to both 2.6.2 and svn-trunk. - however the full patch [3] (incl
fixes for auth_url) is for SVN trunk only. Debian packages (called
icecast2-2.6.3-7~extended) can be found at [4].

Cheers!
robin


[1]
http://rg42.org/gitweb/?p=icecast2;a=commitdiff;h=99f4fd5e6ef902bf50d7d05ec56783219c9b5b1b

[2]
http://rg42.org/gitweb/?p=icecast2;a=commitdiff_plain;hp=master;h=yp-settings

[3] git clone -b tac git://rg42.org/icecast2

[4] http://rg42.org/deb/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.