1
0
mirror of https://gitlab.xiph.org/xiph/icecast-server.git synced 2024-06-23 06:25:24 +00:00
icecast-server/conf/icecast.xml.in
Karl Heyes 9fea71ff77 kh18 update. The important/visible stuff
. memory corruption fix in stats/threading.
. fix for the excessive page flush bug leading to higher bandwidth than expected
with vorbis streams from certain source clients.
. avoid the ::ffff: part from IPv6 within an IP.

The other main change is the YP thread which is started from a dummy client
handle instead of the slave thread. it should now only startup from the worker
if there is work scheduled. Whether the slave thread can reduce wakeups would
need to be investigated.

command auth was updated but the performance results are similar to URL auth.
Other some internal code cleanups are also done. stats seems to be working much
better now.

karl.


svn path=/icecast/branches/kh/icecast/; revision=16691
2009-11-05 05:32:02 +00:00

239 lines
8.8 KiB
XML

<icecast>
<location>UK</location>
<admin>webmaster@localhost</admin>
<limits>
<clients>100</clients>
<sources>2</sources>
<queue-size>524288</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</source-timeout>
<!-- same as burst-on-connect, but this allows for being more
specific on how much to burst. Most people won't need to
change from the default 64k. Applies to all mountpoints -->
<burst-size>65535</burst-size>
<!--
<max-bandwidth>100M</max-bandwidth>
-->
</limits>
<authentication>
<!-- Sources log in with username 'source' -->
<source-password>hackme</source-password>
<!-- Relays log in username 'relay' -->
<relay-password>hackme</relay-password>
<!-- Admin logs in with the username given below -->
<admin-user>admin</admin-user>
<admin-password>hackme</admin-password>
</authentication>
<!-- Uncomment this if you want directory listings -->
<!--
<directory>
<yp-url-timeout>15</yp-url-timeout>
<yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
</directory>
-->
<!-- This is the hostname other people will use to connect to your server.
It affects mainly the urls generated by Icecast for playlists and yp
listings. -->
<hostname>localhost</hostname>
<!-- port to use when talking to YP etc -->
<!--<port>8000</port> -->
<!-- You may have multiple <listener> elements -->
<listen-socket>
<port>8000</port>
<!-- <bind-address>127.0.0.1</bind-address> -->
<!-- use <shoutcast-mount> in here to implicitly define port n+1 -->
</listen-socket>
<!--
<listen-socket>
<port>8001</port>
<ssl>1</ssl>
</listen-socket>
-->
<!--<master-server>127.0.0.1</master-server>-->
<!--<master-server-port>8001</master-server-port>-->
<!--<master-update-interval>120</master-update-interval>-->
<!--<master-username>hackme</master-username>-->
<!--<master-password>hackme</master-password>-->
<!-- issue above authentication for relays in slave setup -->
<!--<master-relay-auth>1</master-relay-auth>-->
<!-- setting this makes all relays on-demand unless overridden, this is
useful for master relays which do not have <relay> definitions here.
The default is 0 -->
<!--<relays-on-demand>1</relays-on-demand>-->
<!-- Request the master server to redirect new listeners to this slave
the details passed are based on <hostname> and <port> -->
<!--<master-redirect>1</master-redirect>-->
<!-- The maximum nuber of slaves that can register for new listener redirection. -->
<!--<max-redirect-slaves>10</max-redirect-slaves>-->
<!-- Relays. State connection information, and by default
request inline metadata for mp3 streams if available.
An on-demand relay will only retrieve the stream if
there are listeners connected -->
<!--
<relay>
<server>127.0.0.1</server>
<port>8001</port>
<mount>/example.ogg</mount>
<local-mount>/different.ogg</local-mount>
<on-demand>1</on-demand>
<retry-delay>30</retry-delay>
<relay-shoutcast-metadata>0</relay-shoutcast-metadata>
</relay>
-->
<!-- Allow multiple master servers to be specified, tries each one in turn.
<relay>
<local-mount>/stream.mp3</local-mount>
<server>a.b.c.d</server>
<timeout>6</timeout>
<master>
<port>8000</port>
<mount>/a</mount>
</master>
<master>
<port>80</port>
<mount>/</mount>
</master>
</relay>
-->
<!-- Only define a <mount> section if you want to use advanced options,
like alternative usernames or passwords
With a master/slave setup you need to define a mount in the master
or else the server will assume that the stream is not to be made
available to the slave.
<mount>
<mount-name>/*.ogg</mount-name>
<username>othersource</username>
<password>hackmemore</password>
<max-listeners>1</max-listeners>
<max-bandwidth>1000k</max-bandwidth>
<file-seekable>0</file-seekable>
<dump-file>/backup/live-%d-%b.ogg</dump-file>
<burst-size>65536</burst-size>
<fallback-mount>/example2.ogg</fallback-mount>
<fallback-override>1</fallback-override>
<fallback-when-full>1</fallback-when-full>
<intro>/path/to/stream-intro.ogg</intro>
<max-listener-duration>3600</max-listener-duration>
<hidden>1</hidden>
<authentication type="htpasswd">
<option name="filename" value="myauth"/>
<option name="allow_duplicate_users" value="0"/>
</authentication>
<on-connect>/home/icecast/bin/stream-start</on-connect>
<on-disconnect>/home/icecast/bin/stream-stop</on-disconnect>
<file-seekable>0</file-seekable>
</mount>
-->
<!-- other auth possibilities include running a command
to do the auth, mount, user and pass are passed via
stdin to the program
<mount>
....
<authentication type="command">
<option name="listener_add" value="auth_verify"/>
</authentication>
or
for url auth, the add url needs to return a "icecast-auth-user:" http
header for a user to authenicate. URLs are sent params via POST.
<authentication type="url">
<option name="username" value="admin"/>
<option name="password" value="hackme"/>
<option name="handlers" value="3" />
<option name="stream_auth" value="http://myauthserver.com/scripts/auth_mount.php"/>
<option name="mount_add" value="http://myauthserver.com/scripts/add_mount.php"/>
<option name="mount_remove" value="http://myauthserver.com/scripts/del_mount.php"/>
<option name="listener_add" value="http://myauthserver.com/scripts/add_listener.php"/>
<option name="listener_remove" value="http://myauthserver.com/scripts/del_listener.php"/>
</authentication>
</mount -->
<fileserve>1</fileserve>
<!-- set the mountpoint for a shoutcast source to use, the default if not
specified is /stream but you can change it here if an alternative is
wanted or an extension is required
<shoutcast-mount>/live.nsv</shoutcast-mount>
-->
<paths>
<!-- basedir is only used if chroot is enabled -->
<basedir>@pkgdatadir@</basedir>
<!-- Note that if <chroot> is turned on below, these paths must both
be relative to the new root, not the original root -->
<logdir>@localstatedir@/log/@PACKAGE@</logdir>
<webroot>@pkgdatadir@/web</webroot>
<adminroot>@pkgdatadir@/admin</adminroot>
<!-- <pidfile>@pkgdatadir@/icecast.pid</pidfile> -->
<!-- <ssl-certificate>@pkgdatadir@/icecast.pem</ssl-certificate> -->
<!-- <deny-ip>/path/to/file-with-IPs</deny-ip> -->
<!-- <allow-ip>/path/to/file-with-IPs</allow-ip> -->
<!-- <deny-agents>/path/to/file-with-useragents</deny-agents> -->
<!-- location of mime types files used for file serving -->
<!-- <mime-types>/etc/mime.types</mime-types> -->
<!-- Aliases: treat requests for 'source' path as being for 'dest' path
May be made specific to a port or bound address using the "port"
and "bind-address" attributes.
-->
<!--
<alias source="/foo" dest="/bar"/>
-->
<!-- Aliases: can also be used for simple redirections as well,
this example will redirect all requests for http://server:port/ to
the status page
-->
<alias source="/" dest="/index.html"/>
</paths>
<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<!-- <accesslog_ip>0<accesslog_ip> -->
<!-- <playlistlog>playlist.log</playlistlog> -->
<loglevel>3</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
<logsize>10000</logsize> <!-- Max size of a logfile -->
<!-- If logarchive is enabled (1), then when logsize is reached
the logfile will be moved to [error|access|playlist].log.DATESTAMP,
otherwise it will be moved to [error|access|playlist].log.old.
Default is non-archive mode (i.e. overwrite)
-->
<!-- <logarchive>1</logarchive> -->
</logging>
<security>
<chroot>0</chroot>
<!--
<changeowner>
<user>nobody</user>
<group>nogroup</group>
</changeowner>
-->
</security>
</icecast>