mirror of
https://gitlab.xiph.org/xiph/icecast-server.git
synced 2024-06-23 06:25:24 +00:00
. 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
239 lines
8.8 KiB
XML
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>
|