SnmpKit v1.3.22 Release Notes
Release Date: May 2026 Version: 1.3.22 Previous Version: 1.3.21
Overview
This patch release fixes regular walk timeout and socket behavior while keeping
the public API stable. It is focused on making non-shared-socket walks behave
more like command-line SNMP tools: one operation owns its socket, each PDU has
its own timeout and retry budget, and whole-walk protection is handled
separately with walk_timeout:.
Highlights
- Regular GETBULK walks now reuse one private UDP socket for the full walk instead of opening and closing a socket for each page.
- Low-level manager operations now close sockets from
afterblocks so error and timeout paths do not leak sockets. retries:is now honored for low-level SNMP requests. Retries apply per PDU after a per-PDUtimeout:.- Legacy
strategy: :simplemulti-walk task protection now useswalk_timeout:instead of a single PDU timeout. - Timeout documentation now clearly separates
timeout:,retries:, andwalk_timeout:. - Multi-target docs now describe top-level
timeout:as the call-level default per-PDU timeout, not a whole-operation timeout.
API Compatibility
This release is backward compatible:
- No public function signatures were removed or changed.
timeout:remains the per-PDU timeout.- Per-request
timeout:overrides continue to work in multi-target APIs. walk_timeout:is the separate whole-walk safety cap for walk operations.
User-Visible Fixes
Regular Walks
- Single-target regular walks no longer churn UDP sockets on every GETBULK page.
- Timeout behavior is now per PDU, so a large table walk is not limited to one request timeout.
- Whole-walk safety remains bounded by
walk_timeout:.
Low-Level Manager Operations
- GET, GETBULK, SET, and GETNEXT close their private sockets consistently on success and failure.
- PDU retries now behave as documented.
Validation
Validated with:
- focused manager and walk regression tests
- simulator community-string regression coverage
- full test suite
The full suite passed with 76 doctests and 1392 tests.