SNMP4J Releases 3.7.4 and 2.8.15

SNMP4J 3.7.4 and 2.8.15 have been released 2022-11-10T23:00:00Z to add a maximum outbound message length limit on TransportMapping to more precisely control outbound message sizes as required to fix a DoS/OutOfMemory bug in SNMP4J-AgentX prior to 3.6.0 and 2.7.3 respectively.

CHANGES SNMP4J 3.7.4

  • Added [AS-38]: TransportMapping.getMaxOutboundMessageSize to allow specifying an upper limit for outgoing messages per TransportMapping. Before this version, the TransportMapping.getMaxInboundMessageSize was used in most cases to limit the outbound traffic. Although, the implementation of the new outbound limit defaults to the inbound limit, the outbound limit is now used to limit the maximum message size in CommandResponderEvent provided by the CommandListener.processPdu interface in any case.
  • Added: Unit test for TableUtils that tests sparse table functionality with missing columns and heavily changing rows/column availability in simulated agent during retrieval.
  • Improved: TableEvent instances for rows fully received by the agent, but last column is not returned by the agent (i.e., a sparse table with missing last column) are now returned immediately, if TableUtils detect, that the last column is empty. Before, all rows were cached until the whole table was fully retrieved in this case.
  • Added: TableUtils.setRowLimit to limit the total rows returned by TableUtils.getTable(..). Default is “no limit” (0) as before.
  • Fixed: JavaDoc gif image links in package HTML files (moved JavaDoc gifs to src/main/javadoc).

CHANGES SNMP4J 2.8.15

  • Added [AS-38]: TransportMapping.getMaxOutboundMessageSize to allow specifying an upper limit for outgoing messages per TransportMapping. Before this version, the TransportMapping.getMaxInboundMessageSize was used in most cases to limit the outbound traffic. Although, the implementation of the new outbound limit defaults to the inbound limit, the outbound limit is now used to limit the maximum message size in CommandResponderEvent provided by the CommandListener.processPdu interface in any case.
  • Added: Unit test for TableUtils that tests sparse table functionality with missing columns and heavily changing rows/column availability in simulated agent during retrieval.
  • Improved: TableEvent instances for rows fully received by the agent, but last column is not returned by the agent (i.e., a sparse table with missing last column) are now returned immediately, if TableUtils detect, that the last column is empty. Before, all rows were cached until the whole table was fully retrieved in this case.