BugSpencer
Ist gelegentlich hier
- Registriert
- 25. Mai 2026
- Beiträge
- 57
- Reaktionspunkte
- 59
- Punkte
- 50
Ich würde den Patch in der aktuellen Form nicht anwenden. Einige Punkte sind aus meiner Sicht offen oder sollten korrigiert werden:
Aus meiner Sicht sind vor allem die entfernte httpmaxrequestsize-Validierung, die ungeklärte Default-Änderung von stream_relay_buffer_time und die fehlende Fehlerbehandlung bei streamrelaybuf_init() / streamrelaybuf_write() die Punkte, die geklärt werden sollten.
- In oscam-config-global.c wurde die bisherige Validierung von httpmaxrequestsize entfernt. Das wirkt fachfremd zum DelayBuffer-Patch und sieht nach einer Regression aus.
- Der Default von stream_relay_buffer_time wurde von 0 auf 500 geändert. Laut Changelog ist das weiterhin der Legacy-Startup-Delay und wirkt auch bei stream_relay_delay_buffer = 0. Damit verändert der Patch auch den Nicht-DelayBuffer-Pfad. Falls das gewollt ist, sollte es explizit begründet werden.
- Der Rückgabewert von streamrelaybuf_init() sollte geprüft werden. Wenn Speicher- oder Mutex-Initialisierung fehlschlägt, darf der Buffer nicht trotzdem als initialisiert behandelt werden.
- Der Rückgabewert von streamrelaybuf_write() sollte ebenfalls geprüft werden. Backpressure hilft gegen normale Überfüllung, ersetzt aber keine Fehlerbehandlung bei Grow-/OOM-/MaxSize-Fehlern.
- stream_resptime wurde semantisch verändert. Im Nicht-DelayBuffer-Pfad sollte geprüft werden, ob der Wert weiterhin wie vorher aktualisiert wird. Zusätzlich sollte der Cast von größeren Zeitwerten auf int abgesichert werden.
- Im Debug-Log von decrypt() wird die Batch-Größe nach dem Reset von fill[oddeven] geloggt. Dadurch kann im Log batch=0 erscheinen, obwohl vorher tatsächlich Pakete im Batch waren.
- streamrelaybuf_readPtr() ist API-seitig riskant, falls fromThread == false künftig genutzt wird, weil dann interne Read-Pointer ohne Lock verändert werden. Im aktuellen Aufrufpfad scheint das zwar nicht akut zu greifen, aber robuster wäre eine einheitlich gelockte API.
vG 04
- von meiner Seite passt in allen Versionen auch nocht nicht alles, Veto das Irgendwo so jetzt einzuschecken
- Rückmeldungen, was Funktioniert, und was nicht, vergleiche was wo besser ist, vermisse ich hier noch
- ich habe bei mir Intern auch schon was angepasst, bin aber noch am Testen.
- httpmaxrequestsize-Validierung, Das war bei mir schon verloren gegangen
- Default-Änderung von stream_relay_buffer_time, da verwende ich sogar 700ms, das ist essentiell, damit es beim add Delay es nur 1x Kurz Pause macht, und nicht eine weile Bild/Ton stottert bis es sauber weiterläuft (v2, v4 bei den anderen?)
- Delaybuffer startet erst nach gültigem CW, das finde ich nicht optimal
- Resync-Grace-Zeit, wofür, warum zurücksetzen
