mirror of
https://github.com/ZoneMinder/zoneminder.git
synced 2026-10-03 07:55:22 -04:00
kill() cleared this.started before calling this.stop(), but stop() returns early when !started. For the zms path that meant clearInterval() on statusCmdTimer and streamCmdTimer never ran, activePlayer was never reset and mediaStream/audioTrack/videoTrack were never released. Every kill() leaked a pair of intervals, which adds up over a montage or watch page that cycles monitors every few seconds. Keep started set until stop() has done its work, and pass skipStreamCommand so stop() doesn't follow CMD_QUIT with a CMD_STOP against a socket zms is already tearing down. Clear connkey afterwards. stop() already sets started=false and activePlayer='' at the end, so kill() doesn't need to. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Modern ZoneMinder Skin
This web frontend to ZoneMinder is a complete rewrite of the classic frontend, based on CakePHP.