Rainer Gerhards 26627f5a35
imfifo: implement named pipe input module (#7029)
* imfifo: implement named pipe input module

Why:
Allows rsyslog to read logs line-by-line from local POSIX named pipes
(FIFOs) without blocking the startup sequence or spinning on EOF
disconnect loops.

Impact:
Adds the 'imfifo' input module and registers its test suite.

Before/After:
Rsyslog had no native named pipe input capability; now imfifo
provides dynamic, non-blocking FIFO input instances.

Technical Overview:
- Integrated imfifo into the autotools build system with
  --enable-imfifo.
- Implemented plugins/imfifo/imfifo.c using the modern v6 config
  syntax.
- Used open(path, O_RDWR) to keep a dummy writer, avoiding
  startup hangs and EOF reopen loops.
- Implemented select-polling loop with 100ms timeout for
  clean, quick shut down responses.
- Splitted incoming chunks by newline, submitting complete
  messages using submitMsg2.
- Created tests/imfifo.sh and tests/imfifo-vg.sh to verify
  correct function and Valgrind compatibility.

closes https://github.com/rsyslog/rsyslog/issues/440

With the help of AI-Agents: Antigravity
2026-05-27 11:47:21 +02:00
..

Codex Repo Setup

This repository ships a repo-local Codex hook configuration for trusted projects.

What it does

  • Enables Codex hooks for this repository via .codex/config.toml
  • Runs .codex/pre_commit_format_gate.sh before Bash-based git commit commands
  • Understands both direct git commit ... invocations and shell-wrapped forms such as bash -lc 'git commit ...'
  • Runs the deterministic repo-policy focus checks first against the staged commit snapshot
  • If those invariants fail, the hook exits early and prints the specific failures for the agent to fix
  • The hook runs ./devtools/format-code.sh --git-changed
  • If clang-format-18 is not installed, the hook allows the commit without blocking
  • If no tracked .c or .h files have changed, the hook skips formatting work
  • If formatting fails, the git commit tool call is blocked and Codex is told to fix formatting first
  • If formatting updates .c or .h files, the hook stages those tracked formatter updates automatically and then allows the commit
  • If partially staged .c or .h files are present, the hook blocks because auto-restaging would not be safe

Requirements

  • The repository must be trusted so Codex loads .codex/config.toml
  • Codex hooks must be available in your Codex build

Scope

This affects Codex users working in this repository. It does not replace normal project review or CI checks, and it does not affect contributors who are not using Codex.