For KH operations, a mount definition is both a stream policy and, where supported, a policy for matching requests. Exact mounts, patterns, relays and file requests can interact. Start with an exact name and a clear expected source before introducing broader matching.

Make the intended policy explicit

This excerpt goes directly inside the existing <icecast> root. It assumes a working local baseline and an encoder configured for /live.ogg:

xml · Code example
<mount>
  <mount-name>/live.ogg</mount-name>
  <username>source</username>
  <password>REPLACE_WITH_RANDOM_MOUNT_SECRET</password>
  <max-listeners>30</max-listeners>
  <public>0</public>
  <hidden>0</hidden>
</mount>

Replace the secret and reconfigure the test source accordingly. This uses KH’s mount form, not a regular Icecast 2.5 default-role example. The block changes a policy; the source connection supplies media. A mount can therefore be configured without an active stream being available at that moment.

Separate the audiences of each control

username and password concern the source connection. Listener admission belongs to the mount’s authenticator. max-listeners limits that stream, while instance-wide client and listener caps have their own meanings. public=0 prevents directory publication; it does not make direct listening private. hidden affects listings and should not be used as a secrecy control.

The pinned parser supports additional KH controls including max-bandwidth, hijack, linger-for and priority-based pattern matching. Add them only for a defined operational purpose. In particular, a source takeover or delayed shutdown changes the failure model and must not be introduced as an unexplained “better default”.

Verify what matched and when

Check XML, reload through the installation’s supported mechanism, and inspect logs. Some changes affect only new requests or the next source connection. In a test window, connect the intended source, reject an incorrect account and request the exact listening path. Compare the observed listener limit and publication state with the chosen block.

If an unexpected policy applies, inspect all matching patterns and their priority rather than repeatedly changing the exact block. Continue with mount patterns and precedence before applying a broad wildcard to existing streams.