Eine Ereignismeldung berichtet über einen Vorgang. Eine Authentifizierungsentscheidung steuert, ob eine Anfrage zugelassen wird. Trennen Sie diese Aufgaben besonders beim Wechsel älterer Mount-Callbacks aus dem Webhandbuch zur mit Icecast 2.5.0 gelieferten Konfiguration.
Die Bindung am richtigen Ort lesen
Das Beispiel von 2.5.0 enthält die Trigger source-connect und source-disconnect innerhalb eines Mounts. Dieser Ausschnitt gehört in den betreffenden <mount>-Block und startet eigene begrenzte Programme:
<event-bindings>
<event type="exec" trigger="source-connect">
<option name="executable" value="/ABSOLUTE/PRIVATE/PATH/stream-start"/>
</event>
<event type="exec" trigger="source-disconnect">
<option name="executable" value="/ABSOLUTE/PRIVATE/PATH/stream-stop"/>
</event>
</event-bindings>Ersetzen Sie die Pfade ausdrücklich. Die Programme werden hier nicht mitgeliefert. Das Release-Beispiel zeigt außerdem URL-Ereignisse mit type="url", einer url-Option und einer Aktion wie mount_add. Aus dem lesbaren Ereignisnamen allein folgen weder ein festes Datenformat noch Ausführungsgarantien. Prüfen Sie die konkrete Implementierung für die Felder Ihrer Anbindung.
Die ausgelöste Aktion begrenzen
Hook-Programme dürfen nur die benötigten Rechte erhalten. Legen Sie ausführbare Dateien außerhalb ausgelieferter Verzeichnisse ab. Verhindern Sie, dass das Dienstkonto oder unberechtigte Benutzer ein höher privilegiertes Programm umschreiben können. Behandeln Sie Mountnamen und Metadaten als Daten und setzen Sie daraus keine Shell-Befehle zusammen.
Ein entferntes Ereignisziel kann fehlschlagen, langsam antworten oder vorübergehend unerreichbar sein. Wiederholte Meldungen dürfen beim Empfänger nicht zu mehrfachen unumkehrbaren Aktionen führen. Halten Sie Geheimnisse und unnötige personenbezogene Daten aus der Diagnose heraus.
Einen Lebenszyklus nach dem anderen prüfen
Verwenden Sie einen privaten Test-Mount und einen harmlosen Empfänger, der nur eine Markierung aufzeichnet. Verbinden, trennen und verbinden Sie die Quelle erneut. Prüfen Sie Icecast-Log und Empfänger. Wiederholen Sie den Ablauf mit einem kontrollierten Empfängerfehler. Streamauslieferung und Authentifizierung müssen weiterhin der vorgesehenen Regel entsprechen. Ein gültiger XML-Block beweist weder ein vorhandenes Programm noch einen angekommenen Fernaufruf.