mirror of
https://github.com/ZoneMinder/zoneminder.git
synced 2026-09-14 14:19:45 -04:00
set_config prepended the section name to keys that already carried it, so NTP.Address went out as NTP.NTP.Address. get_config only strips the 'table.' prefix, which leaves keys in exactly the form setConfig wants, so drop the extra prefix and let reads and writes round-trip. uri_encode was called but URI::Encode was never imported, and the plain call leaves reserved characters alone, which corrupts passwords in a query string. Import it and always escape reserved characters. get_config now reads configManager.cgi sections as well as the handful of dedicated cgis, retries once on a 401 so the fresh digest nonce gets used, strips the 'table.' prefix, and tries any unrecognised name as a configManager section so a template can pull in sections the module doesn't list. set_config fell off the end of its loop returning undef on success. reboot POSTed system_reset=1 to setparam.cgi, a Vivotek endpoint, on a relative url through the raw user agent. ZoneMinder::General was used but never required. Adds device info, time, users, snapshot/rtsp/profiles/probe, white light and siren, and the remaining PTZ stops and auto pan, matching the method names cameratool.pl probes for with ->can(). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LzHrvNtF13vyYBAJjktam6