Ensure osslChkPeerAuth starts with a null peer-certificate pointer and
frees any retrieved X509 certificate so OpenSSL allocations from
SSL_get_peer_certificate do not leak after TLS handshakes.
- Added "Getting Started" guide with modern examples and pipeline
integrations (e.g., Elasticsearch, Kafka).
- Rewrote community resources page:
* Added AI-based rsyslog assistant and GitHub Discussions as primary
support channels.
* Moved older resources to a new "Legacy Resources" section.
* Added note about Adiscon professional services.
- Reorganized configuration reference index with clearer structure,
modern examples, and compatibility note updates.
- Introduced a new "Documentation Style Guide" for consistent .rst
formatting and contributor guidance.
- Deleted outdated or unused content (old proposals, examples, and
legacy free_support page).
- Moved version compatibility notes to the historical section.
- Reworked main index page with a concise introduction, better
navigation, and updated community/sponsor references.
- Switched HTML theme to Furo and updated Sphinx requirements.
- Simplified and modernized footer with Apache License 2.0 reference.
This commit significantly improves the rsyslog documentation and its
associated tooling.
Key enhancements:
* **RainerScript Lexer**: Updated lexer to support hyphens in
identifiers, fixing highlighting issues.
* **Sphinx Extension**: Refactored lexer integration as a proper
Sphinx extension.
* **Deprecated Syntax Guidance**: Transformed docs for legacy action
statements to focus on conversion to modern `action()` syntax,
reducing duplication.
* **Legacy Stop Action**: Clarified that `~` for 'stop' is bad
practice.
* **MMAITAG Module Fixes**: Corrected formatting, highlighting, and
syntax in `mmaitag` documentation.
* **Minor Fixes**: Various small formatting and cross-reference
corrections.
These changes streamline documentation, provide clearer migration
paths for users, and enhance the overall accuracy and maintainability.
Add a new 'singlehtml' make target that sets SPHINXOPTS to
-D rst_epilog='' and uses a minimal template set. This removes
header, footer, relbar, and sidebars to produce a clean,
single-page HTML output suitable for AI ingestion.
Standard HTML builds are unaffected.
With AI-Support: Codex, Gemini
Create doc_build.yml for GitHub Actions. The workflow builds
Sphinx docs when *.rst files under doc/ change. It still runs for
other pull requests but exits early so branch protection succeeds
without running make.
AI-Agent: Codex
AI tools and newcomers often execute test scripts
without running autoreconf, configure or make. This
causes missing binaries and confusing failures.
The diag.sh stub now self-bootstraps when needed:
- Run autoreconf -fi if configure is missing.
- Run configure with testbench flags if Makefile is
missing.
- Build tests/tcpflood and tools/rsyslogd via
make check TESTS="".
This makes tests more robust against improper
environment setup.
Handle microsecond rollover when measuring connection attempts.
Calculate seconds and microseconds directly, adjusting when the
microsecond field underflows.
Fixes https://github.com/rsyslog/rsyslog/issues/5831.
AI-Agent: Codex
The omelasticsearch module previously failed to correctly handle HTTP
error status codes returned by the server. The logic checked for
libcurl transport errors but explicitly ignored
'CURLE_HTTP_RETURNED_ERROR', causing server-side errors to be
treated as successful submissions.
This led to silent failures in critical scenarios, especially
authentication (401 Unauthorized) and authorization (403
Forbidden) errors. The plugin would not suspend or report an
error, and data could be lost without any clear error indication.
This commit resolves the issue by:
- Retrieving the HTTP status code after each request using
'curl_easy_getinfo'.
- Adding an explicit check for 401 and 403 status codes.
- Logging a specific "authentication failed" error and suspending
the plugin if these errors are detected.
This ensures that users receive immediate and clear feedback on
authentication problems, preventing silent data loss and aiding in
faster troubleshooting.
With AI support: Codex, Gemini
- add .editorconfig for indent, whitespace, and file-type rules
- add project-local .vimrc to enforce Vim settings via exrc
- add .clang-format for C/C++ style presets and list formatting
- add devtools/format-code.sh to run clang-format and fixups
- adjust clang-format config for stable, idempotent output
- update AGENTS.md with new formatting strategy
- add .git-blame-ignore-revs entry for format change commit
This commit sets up an automated formatting pipeline to let
contributors use their editor of choice while ensuring
consistent, stable code style across the project.
This commit applies the new canonical formatting style using `clang-format` with custom settings (notably 4-space indentation), as part of our shift toward automated formatting normalization.
⚠️ No functional changes are included — only whitespace and layout modifications as produced by `clang-format`.
This change is part of the formatting modernization strategy discussed in:
https://github.com/rsyslog/rsyslog/issues/5747
Key context:
- Formatting is now treated as a disposable view, normalized via tooling.
- The `.clang-format` file defines the canonical style.
- A fixup script (`devtools/format-code.sh`) handles remaining edge cases.
- Formatting commits are added to `.git-blame-ignore-revs` to reduce noise.
- Developers remain free to format code however they prefer locally.
Reorganized the “Config Settings” section in rsyslog.h to improve
readability and documentation:
- Added a banner header for the Config Settings block
- Consolidated general MAXSIZE/BUFSIZE guidelines into a single Doxygen
comment
- Provided individual `@brief` comments for each `#define`
- Aligned macro definitions for consistent formatting
No functional changes were made; this is purely a documentation and
style cleanup.
This was originally intended, but for testing it was set to
enabled by default. This is now corrected. Not all CI workers
support the necessary dependencies.