[icecast-dev] Patches - Was: Stream metadata settings
Melanie
melanie at t-data.com
Mon Dec 1 06:23:17 PST 2003
Hello,
this is the first patch, it implements some basic multilevel fallback
handling logic, the time window and the no mount option.
New options are possible within an <mount> section:
<fallback-override>1</fallback-override>
This will allow a source connecting to a mount point to steal the clients
from it's fallback mount. All clients of the fallback are transferred to
the pending queue of the newly connected source.
If the main source drops out, it's clients will, by means of
<fallback-mount>, be connected to the fallback source. With this turned on,
when the main source comes back online, the clients will be shifted back on
reconnect. Without it, the clients will keep listening to the fallback.
<no-mount>1</no-mount>
This will refuse listener connection to the mount point in which it
appears. Sources may still connect. The mount can be used as a fallback,
this is the only way listeners can be connected to it when this option is
set. Even if the mount name is known, direct connections are not possible.
The reason for this is something that happened to us: our stream was
hijacked and the mount point name was spread by IRC so people connected to
it to listen to the pirate broadcast. Fortunately, no racist content was
broadcast this time, but I made the addition to prevent that from
happening. As a licensed station, we are responsible for our content and
_must_ prevent racist content from airing. If we cannot do this, we will be
shut down.
<time-window>17:00-05:00</time-window>
This option will restrict _sources_ from connecting to this stream outside
the time window. We are required by law and contract to broadcast no more
than 12 hours per day. Actually, we may broadcast all day, but only 12
hours worth of RIAA/GEMA/GVL music.
I chose to limit source connection rather than listener connections because
there may be a fallback carrying announcements or royalty-free music or
such. This way, clients trying to connect to this mountpoint outside of the
time window may still listen to this other source.
Fallback and reconnect are handled in a multi-level fashion, where each
fallback may in turn have a fallback. Specifying a circle of fallbacks is
also possible, however, recovery will not go around the circle more than
once. There is really no point in doing that, but XML permits it and the
alternative to making it acceptable would have been to generate a config
parse error. I didn't really want to add such a showstopper.
Recovery only scans downward to the first connected source, that is all
that's needed. By definition, no clients can be connected to lower level
sources, unless they connected directly, in which case it's ok not to pick
them up.
The patch depends on the bugfix I sent earlier, the second version with
strdup().
Melanie
-------------- next part --------------
A non-text attachment was scrubbed...
Name: icecast-combined.patch
Type: text/x-patch
Size: 13252 bytes
Desc: icecast-combined.patch
Url : http://lists.xiph.org/pipermail/icecast-dev/attachments/20031201/bc48664b/icecast-combined.bin
More information about the Icecast-dev
mailing list