AGENT++ 5.0.0 Release

AGENT++ version 5.0.0 has been released on 2026-08-16T22:00:00Z with support for TLS and TCP transport mappings as well as property file based initial agent configuration (using the same format than SNMP4J-Agent).

CHANGES

  • Added: TCP and TLS transport support (by Snmpx.add_tcp_transport and Snmpx.add_tls_transport). Implement TCP and TLS support for atm_mib and proxy_forwarder example.
  • Added: PropertyMibConfig implemented in mib_config.h|.cpp which allows configuring the Mib content using a property configuration file.
  • SECURITY: Replaced all remaining sprintf usages with snprintf.
  • Fixed: Deadlock when a RequestList was destroyed (or remove_request was called) while it still contained requests that had been received but never passed to Mib::process_request. Such requests are still locked by the
    LockQueue thread, so ~Synchronized blocked forever in pthread_mutex_lock on a monitor it does not own. ~RequestList now drains the pending requests, unlinking each request before releasing its lock, and remove_request releases the lock acquired by add_request before deleting the request.
  • Fixed: Invalid memory read of size 8 at Agentpp::LockQueue::run() due to a race condition between the thread removing a LockRequest in run() and logging its pointer and the owner of the LockRequest deleting it.
  • Improved: ~Synchronized no longer waits without a timeout for a monitor that is still locked by another thread when the instance is destroyed. It now waits at most AGENTPP_SYNCHRONIZED_DESTROY_TIMEOUT milliseconds (1000 by default) and logs an error instead of blocking the destroying thread forever.
  • Improved: cmake build now better finds SNMP++ headers and libraries.
  • Removed: #pragma implementation from src/mib_mab.cpp which has no purpose anymore (since cleanup in v4.0.4).
1 Like