zoneminder/src
Pliable Pixels 5ffc2120c7 feat: support token substitution in EventStartCommand/EventEndCommand
Replace execlp() with execl("/bin/sh") and substitute %EID%, %MID%,
and %EC% tokens before execution. This allows users to pass arguments
directly in the command string, e.g.:

  /path/to/zm_detect.py -c /etc/zm/config.yml -e %EID% -m %MID% -r "%EC%" -n

Previously execlp() treated the entire command string as the executable
path, making it impossible to pass arguments without a wrapper script.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 20:29:10 -05:00
..
CMakeLists.txt Add av1 support 2026-01-31 12:43:03 -05:00
bindings.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
jinclude.h
zm.cpp Move exit_zms to exit_zm in zm.cpp 2026-01-05 16:36:36 -05:00
zm.h Move exit_zms to exit_zm in zm.cpp 2026-01-05 16:36:36 -05:00
zm_analysis_thread.cpp Wait on the packetqueue condition instead of sleeping. Should help analysis keep up with decoding better and offer faster shutdown. 2026-02-04 20:44:17 -05:00
zm_analysis_thread.h Add Join() function 2024-10-26 14:29:40 -04:00
zm_box.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_buffer.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_buffer.h fix: prevent null pointer dereference in Buffer::tidy() 2026-02-02 20:34:33 -05:00
zm_camera.cpp fix: address multiple bugs across core source files 2026-02-03 10:18:49 -05:00
zm_camera.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_comms.cpp fix: address multiple bugs across core source files 2026-02-03 10:18:49 -05:00
zm_comms.h fix: correct socket copy constructor and buffer overflow in recv 2026-02-02 20:44:01 -05:00
zm_config.cpp fix: address multiple bugs across core source files 2026-02-03 10:18:49 -05:00
zm_config.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_config_data.h.in misc: Move ZM_HAS_* defines to zoneminder-config.cmake 2021-05-31 23:29:29 +02:00
zm_crypt.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_crypt.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_crypto_generics.h Misc: Rename namespace ZM to zm 2021-06-06 19:11:11 +02:00
zm_crypto_gnutls.h Crypto: Implement SHA1 hashing 2021-05-30 22:56:21 +02:00
zm_crypto_openssl.h Crypto: Implement SHA1 hashing 2021-05-30 22:56:21 +02:00
zm_db.cpp fix: address multiple bugs across core source files 2026-02-03 10:18:49 -05:00
zm_db.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_decoder_thread.cpp Wait on the packetqueue condition instead of sleeping. Should help analysis keep up with decoding better and offer faster shutdown. 2026-02-04 20:44:17 -05:00
zm_decoder_thread.h Add Join() function 2024-10-26 14:29:40 -04:00
zm_define.h zm_define: Include cstddef so we have size_t 2021-05-16 16:42:58 +02:00
zm_event.cpp Use starttime for inserting StartDateTime instead of NOW 2026-02-03 12:10:41 -05:00
zm_event.h Update Storage DiskSpace once event has been finalized. As we decrement DIskSpace on event deletion, we were getting negative DIskSpace in the Storage table. 2026-01-28 15:15:59 -05:00
zm_event_tag.cpp fix: address multiple bugs across core source files 2026-02-03 10:18:49 -05:00
zm_event_tag.h Add tags support to events. 2025-07-05 08:09:09 -04:00
zm_eventstream.cpp perf: skip FFmpeg video probe for JPEG-based event streams 2026-02-09 23:14:55 -06:00
zm_eventstream.h perf: skip Frames table scan during event playback unless debugging 2026-02-08 16:18:51 -06:00
zm_exception.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_exception.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_ffmpeg.cpp Add mpeg4 as some older cameras that use are still funcitoning 2026-02-05 09:08:02 -05:00
zm_ffmpeg.h Cleanup hw_pix_fmt and get_hw_format 2026-01-26 14:40:10 -05:00
zm_ffmpeg_camera.cpp fix: null-check mAudioStream before dereferencing in FfmpegCamera::Capture 2026-02-09 15:57:22 -05:00
zm_ffmpeg_camera.h Cleanup hw_pix_fmt and get_hw_format 2026-01-26 14:40:10 -05:00
zm_ffmpeg_input.cpp fix: correct seek threshold in FFmpeg_Input::get_frame to avoid sequential scan 2026-02-09 17:38:14 -05:00
zm_ffmpeg_input.h Cleanup constructor and add the new codec_data stuff to try out multiple codecs 2025-09-22 09:52:25 -04:00
zm_ffmpeg_output.cpp fix: add null check and fix error message in FFmpeg_Output 2026-02-03 11:03:17 -05:00
zm_ffmpeg_output.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_fifo.cpp fix: address multiple bugs in eventstream, fifo, and monitor 2026-02-02 23:24:08 -05:00
zm_fifo.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_fifo_debug.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_fifo_debug.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_fifo_stream.cpp fix: correct error message and add null check in FifoStream 2026-02-03 11:36:53 -05:00
zm_fifo_stream.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_file_camera.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_file_camera.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_font.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_font.h Utils: Add our own ASSERT macro 2021-05-30 21:41:58 +02:00
zm_frame.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_frame.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_group.cpp fix: correct typo in Group warning message 2026-02-03 11:42:14 -05:00
zm_group.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_group_permission.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_group_permission.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_image.cpp fix: use original colour format for DeColourise() dispatch 2026-02-07 22:39:28 -05:00
zm_image.h perf: reuse persistent blend buffer in Image::Blend() 2026-02-07 22:32:56 -05:00
zm_image_analyser.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_image_analyser.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_jpeg.cpp Change various cases of int img_buffer_size to size_t 2025-07-19 14:18:32 -04:00
zm_jpeg.h Change various cases of int img_buffer_size to size_t 2025-07-19 14:18:32 -04:00
zm_libvlc_camera.cpp fix: add null check before calling libvlc_media_player_stop in Terminate 2026-02-03 11:49:58 -05:00
zm_libvlc_camera.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_libvnc_camera.cpp fix: fix typo, add null check, and use correct free function in VncCamera 2026-02-03 12:09:44 -05:00
zm_libvnc_camera.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_line.h Polygon: Implement clipping to a boundary box 2021-05-16 19:41:45 +02:00
zm_local_camera.cpp Make most Fatals into Errors 2026-01-29 18:50:42 -05:00
zm_local_camera.h Make most Fatals into Errors 2026-01-29 18:50:42 -05:00
zm_logger.cpp Merge pull request #4518 from ZoneMinder/copilot/fix-time-t-format-specifier 2026-01-05 18:30:08 -05:00
zm_logger.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_mem_utils.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_monitor.cpp feat: support token substitution in EventStartCommand/EventEndCommand 2026-02-10 20:29:10 -05:00
zm_monitor.h fix: cache SSL verification failure to avoid repeated warning logs 2026-02-09 10:05:02 -05:00
zm_monitor_amcrest.cpp move Event_Poller_Closes_Event into ONVIF as it only matters to ONVIF. Remove it from Amcrest. 2026-01-14 13:28:52 -05:00
zm_monitor_go2rtc.cpp fix: cache SSL verification failure to avoid repeated warning logs 2026-02-09 10:05:02 -05:00
zm_monitor_janus.cpp fix: cache SSL verification failure to avoid repeated warning logs 2026-02-09 10:05:02 -05:00
zm_monitor_monitorlink.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_monitor_onvif.cpp fix: correct WSA Action for PullMessages and throttle auth error logging 2026-02-09 11:34:44 -05:00
zm_monitor_onvif.h fix: correct WSA Action for PullMessages and throttle auth error logging 2026-02-09 11:34:44 -05:00
zm_monitor_permission.cpp Make permission values 0 based but stsarting with UNKNOWN because when doing permission+0 in SQL, we get a 1-based value 2022-11-03 18:28:23 -04:00
zm_monitor_permission.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_monitor_rtsp2web.cpp fix: cache SSL verification failure to avoid repeated warning logs 2026-02-09 10:05:02 -05:00
zm_monitorlink_expression.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_monitorlink_expression.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_monitorlink_token.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_monitorstream.cpp Remove debug 2026-02-05 09:07:22 -05:00
zm_monitorstream.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_mpeg.cpp Deprecate zm_av_frame_alloc 2025-09-18 14:48:52 -04:00
zm_mpeg.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_mqtt.cpp fix: use mosquitto_strerror() for MQTT error codes 2026-02-02 20:53:00 -05:00
zm_mqtt.h Fix definition of on_publish 2024-10-29 13:30:29 -04:00
zm_packet.cpp perf: add monotonic queue_index to ZMPacket for O(1) iterator lookup 2026-02-07 23:41:48 -05:00
zm_packet.h perf: add monotonic queue_index to ZMPacket for O(1) iterator lookup 2026-02-07 23:41:48 -05:00
zm_packetqueue.cpp perf: add monotonic queue_index to ZMPacket for O(1) iterator lookup 2026-02-07 23:41:48 -05:00
zm_packetqueue.h perf: add monotonic queue_index to ZMPacket for O(1) iterator lookup 2026-02-07 23:41:48 -05:00
zm_poll_thread.cpp fix: call Stop() before restarting in PollThread::Start() 2026-02-03 12:13:29 -05:00
zm_poll_thread.h Adds ONVIF Motion Detection Support 2022-01-06 16:45:15 -06:00
zm_poly.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_poly.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_regexp.cpp Port to PCRE2 (Closes: #3384). 2025-02-26 21:04:32 +11:00
zm_regexp.h Port to PCRE2 (Closes: #3384). 2025-02-26 21:04:32 +11:00
zm_remote_camera.cpp fix: check for empty path before accessing first character 2026-02-03 12:25:21 -05:00
zm_remote_camera.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_remote_camera_http.cpp fix: correct inet_ntop buffer size in RemoteCameraHttp 2026-02-04 17:41:37 -05:00
zm_remote_camera_http.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_remote_camera_nvsocket.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_remote_camera_nvsocket.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_remote_camera_rtsp.cpp Removing avcodec_close, avcodec_free_context is replacement and been around since 2014, so should be no reason to version test. 2024-09-14 11:06:55 +10:00
zm_remote_camera_rtsp.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_rgb.h Fix brg_to_yuv 2025-09-18 10:07:50 -04:00
zm_rtp.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_rtp.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_rtp_ctrl.cpp fix: correct NTP timestamp type truncation in RtpCtrlThread 2026-02-03 12:34:21 -05:00
zm_rtp_ctrl.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_rtp_data.cpp fix: correct type mismatches in RtpDataThread 2026-02-03 12:45:56 -05:00
zm_rtp_data.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_rtp_source.cpp fix: prevent division by zero in RtpSource::updateRtcpData 2026-02-03 12:47:14 -05:00
zm_rtp_source.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_rtsp.cpp fix: add null checks in RtspThread to prevent crashes 2026-02-03 12:28:30 -05:00
zm_rtsp.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_rtsp_auth.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_rtsp_auth.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_rtsp_server.cpp Add av1 support 2026-01-31 12:43:03 -05:00
zm_rtsp_server_adts_source.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_rtsp_server_adts_source.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_rtsp_server_authenticator.h Fix Authenticate as nonce is now internal 2026-01-09 11:43:15 -05:00
zm_rtsp_server_device_source.cpp Replace C-style casts with C++ static_cast for intmax_t 2026-01-05 13:36:16 +00:00
zm_rtsp_server_device_source.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_rtsp_server_fifo_adts_source.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_rtsp_server_fifo_adts_source.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_rtsp_server_fifo_audio_source.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_rtsp_server_fifo_audio_source.h Add av1 support 2026-01-31 12:43:03 -05:00
zm_rtsp_server_fifo_av1_source.cpp Add zm_rtsp_server_fifo_av1_source 2026-01-31 16:19:38 -05:00
zm_rtsp_server_fifo_av1_source.h Add zm_rtsp_server_fifo_av1_source 2026-01-31 16:19:38 -05:00
zm_rtsp_server_fifo_h264_source.cpp fix: prevent underflow and type mismatch in H264 fifo source 2026-01-30 15:30:40 -05:00
zm_rtsp_server_fifo_h264_source.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_rtsp_server_fifo_source.cpp fix: multiple issues in zm_rtsp_server_fifo_source 2026-01-30 14:49:53 -05:00
zm_rtsp_server_fifo_source.h fix: multiple issues in zm_rtsp_server_fifo_source 2026-01-30 14:49:53 -05:00
zm_rtsp_server_fifo_video_source.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_rtsp_server_fifo_video_source.h Add av1 support 2026-01-31 12:43:03 -05:00
zm_rtsp_server_frame.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_rtsp_server_server_media_subsession.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_rtsp_server_server_media_subsession.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_rtsp_server_unicast_server_media_subsession.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_rtsp_server_unicast_server_media_subsession.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_sdp.cpp fix: address multiple issues in SessionDescriptor::generateFormatContext 2026-02-03 13:34:17 -05:00
zm_sdp.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_sendfile.h Fix complaint 2023-01-18 16:01:42 -05:00
zm_server.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_server.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_signal.cpp fix: improve crash backtrace on ARM and fix misleading signal info 2026-01-30 15:09:02 -05:00
zm_signal.h fix: improve crash backtrace on ARM and fix misleading signal info 2026-01-30 15:09:02 -05:00
zm_storage.cpp fix: add empty checks and use safer string functions in Storage 2026-02-03 12:30:06 -05:00
zm_storage.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_stream.cpp fix: correct file descriptor error checks in StreamBase 2026-02-03 16:44:50 -05:00
zm_stream.h Init last_fps_update in stream constructor 2024-10-22 18:32:31 -04:00
zm_swscale.cpp fix: correct copy-paste error in pixel format warning 2026-02-03 16:47:43 -05:00
zm_swscale.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_tag.cpp Add tags support to events. 2025-07-05 08:09:09 -04:00
zm_tag.h Add tags support to events. 2025-07-05 08:09:09 -04:00
zm_time.cpp Introduce SystemTimePOintToMysqlString 2026-01-24 11:17:57 -05:00
zm_time.h Introduce SystemTimePOintToMysqlString 2026-01-24 11:17:57 -05:00
zm_uri.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_uri.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_user.cpp fix: fix memory leaks in User::find() functions 2026-02-03 12:24:07 -05:00
zm_user.h Add ::find methods and getAuthHash 2025-08-05 14:13:39 -04:00
zm_utils.cpp Fix appending %% instead of % when uri decoding. Add test for URIEncode 2026-02-04 20:45:46 -05:00
zm_utils.h Move escape_json_string and remove_newlines to zm_utils 2025-06-26 14:53:38 -04:00
zm_vector2.h Format code using astyle google format 2024-03-26 13:43:58 -05:00
zm_videostore.cpp fix: address bugs in videostore and stream 2026-02-02 23:26:20 -05:00
zm_videostore.h Move codec_data from videostore to ffmpeg. Add dec_codecs and add a function to return relevant codec_data and setup hw_ctx. 2025-09-18 09:27:31 -04:00
zm_zone.cpp perf: reuse diff image buffer in Zone::CheckAlarms 2026-02-09 19:25:58 -06:00
zm_zone.h fix: apply credentials to secondary URL and fix buffer overflow in DumpSettings 2026-02-04 17:40:26 -05:00
zm_zone_stats.h perf: reduce logging overhead and string temporaries in Analyse() 2026-02-07 22:52:15 -05:00
zmbenchmark.cpp Format code using astyle google format 2024-03-26 13:43:58 -05:00
zmc.cpp Only log a capture failure if we aren't terminated 2026-01-15 16:31:22 -05:00
zms.cpp Move exit_zms to zm.cpp exit_zm. Add time= parsing and prefer loading by event_id if specified 2026-01-05 16:38:35 -05:00
zmu.cpp Remove unused loop index in zmu list output 2025-12-31 22:29:37 +11:00