Net::SNMP Changes
RELEASE 4.0.3 SEP-09-2002
- Net::SNMP objects are now destroyed as expected when they are no
longer referenced. An internal reference to the object allocated by
the Net::SNMP::Dispatcher module is now properly cleared.
- A socket with a file descriptor value of 0 is now accepted by the
Net::SNMP module as a valid and open filehandle.
- Removed an "optimization" which was intended to provide a smoother
initialization of the dispatcher but instead could lead to messages
incorrectly timing out.
RELEASE 4.0.2 MAY-06-2002
- The SNMPv3 request message sent for time synchronization is now sent
with the same securityLevel that is configured for the session.
- The "reserved" bits in the msgFlags field of an incoming SNMPv3
message are now ignored as suggested by RFC 2572.
- When encrypting a SNMPv3 message, the padding byte(s) are now set to
a value equal to the size of the padding. "The actual pad value is
irrelevant..." according RFC 2574 Section 8.1.1.2. However, there
are some agents that expect this byte pattern.
- Corrected a reference count mismatch which would leave a listening
socket open if no response is received from the remote agent.
- Corrected a "deep recursion" error that occurred when using the
get_table() method to retrieve large tables in blocking mode.
- Using the "-delay" argument with the get_table() method no longer
incorrectly delays between message exchanges when retrieving the table.
- Optimizations and improvements were made to the Net::SNMP::Dispatcher
event scheduling and handling procedures.
- The "translate unsigned" logic now correctly handles properly
formatted (but unexpected) negative Counter64, Counter, Gauge, and
TimeTick values.
RELEASE 4.0.1 JAN-01-2002
- SNMPv3 objects using authentication now send a separate authenticated
request message for time synchronization while performing discovery.
- Non-blocking SNMPv1/2c messages with a "-delay" argument which are
queued before entering the event loop are no longer incorrectly
discarded.
- The Net::SNMP::Security::Community::security_model() method now
returns the correct value as reserved by RFC 2571.
- The first subidentifier in an OBJECT IDENTIFIER is now restricted to
ccitt(0), iso(1), or joint-iso-ccitt(2) as specified by ISO/IEC 8825.
- Changed the appropriate CHECK blocks into BEGIN blocks to avoid the
"Can't call method 'send_pdu' on an undefined value" error when the
module is loaded using a quoted eval statement.
RELEASE 4.0.0 NOV-09-2001
- The module has been completely redesigned to add support for SNMPv3
and to follow the SNMP Management Framework defined by RFC 2571.
- Perl version 5.6.0 or greater is now required to use the module.
- Updated the method calls to expect the same argument syntax regardless
of whether they are invoked by "blocking" or "non-blocking" objects.
- The non-core modules Crypt::DES, Digest::MD5, Digest::SHA1, and
Digest::HMAC are now required to support SNMPv3.
- Added the ability to specify the local address and port number used by
each object.
RELEASE 3.65 SEP-09-2001
- Corrected an error in the Net::SNMP::FSM module that would cause all
response messages to be dropped in "non-blocking" mode if there is
a recv() error.
- Updated the logic in the "blocking" response handling method such
the transmit buffer is properly updated if there is a decode
error while parsing the GetResponse-PDU.
- Counter, Gauge, and TimeTick values that are incorrectly encoded as
negative signed integers are now converted to unsigned values. This
feature can be disabled by setting the "-unsigned" flag to false
using the translate() method.
- An empty community name is now allowed.
- Updated the "non-blocking" example script.
RELEASE 3.60 SEP-09-2000
- Translation can now be enabled or disabled on a per ASN.1 type basis.
- The Net::SNMP::FSM "event loop" now prioritizes processing SNMP responses
over other actions.
- A set of example scripts is now included with the distribution.
RELEASE 3.50 MAY-06-2000
- The methods that expect a SNMP GetResponse-PDU in "blocking" mode now ignore
messages with request-ids that do not match the current request-id. This
change addresses a common occurrence of the "Received request-id xxxx is
not equal to transmitted request-id xxxx" error. The manifestation of this
error that has been corrected occurs when a remote agent is too busy to
respond immediately, buffers the request, and responds to the request after
the Net::SNMP timeout has expired.
- A new argument "-delay" was added to all methods that can function in "non-
blocking" mode.
- The Net::SNMP::FSM "event loop" sub-module was completely rewritten to more
logically handle events.
- The get_table() method now uses get-bulk-requests instead of
get-next-requests when the calling object's version is SNMPv2c.
- When a duplicate OBJECT IDENTIFIER is received in the VarBindList of a
GetResponse-PDU, the duplicate is now padded with an appropriate number of
spaces to make it an unique key in the HASH reference returned by the object.
- The default Maximum Transport Unit was changed from 484 to 1500. The
minimum allow MTU is now 484.
RELEASE 3.01 JAN-01-2000
- Performance enhancements were made to the most heavily used methods.
- Changed the default timeout to 5.0 seconds and the default number of retries
to 1 to reduce network traffic and to work around a problem with responses
from certain routers when they are busy. The total default timeout period
remains the same at 10 seconds.
- Removed the verify_ip() method and the "-verifyip" argument to the
constructor.
RELEASE 3.00 SEP-09-1999
- Added event loop based "non-blocking" support.
- Deprecated the verify_ip() method because verification of the received
IP address and port number is no longer done.
- The "null" character (\000) no longer triggers an OCTET STRING in a
GetResponse-PDU to be converted to a hexadecimal representation if
translation is enabled.
- A single socket is now used for all Net::SNMP objects.
- Corrected an error where a blocking session would send one too many
retries and fail to listen for the last message sent.
- Added a new export tag ":snmp" used to define SNMP related symbols.
- New utility functions oid_context_match(), oid_lex_sort(), and
ticks_to_time() were added to provide support for commonly requested
tasks.
- The length of the varBind SEQUENCE is now properly encoded when multiple
varBinds exist.
RELEASE 2.00 MAY-06-1999
- Added support for SNMPv2c (Community-Based SNMPv2).
- Modified the ASN.1 encode routine for INTEGERs to correctly handle
positive values greater than 8388607.
- Added an installation test to verify basic usage of the module,
including verification of basic encode and decode methods.
RELEASE 1.40 APR-26-1999
- All parameters for the object that used to be only configurable via an
object method can now be modified at object creation by passing named
arguments to the constructor.
- The translate() and debug() methods were modified to require a boolean
argument to enable or disable the feature. This deprecates the toggle
functionality they had previously.
- New method verify_ip() added that enables or disables the verification
of the IP address and UDP port number on datagrams received by the object.
- Added support for decoding ASN.1 lengths encoded with 3 or 4 bytes.
- Installation tests for the modules required by Net::SNMP and for basic
socket functionality were added to the distribution.
RELEASE 1.30 MAR-17-1999
- Modified the OBJECT INDENTIFIER decode method to return a leading dot
on all identifiers if there was a leading dot on any OBJECT IDENTIFIER
passed to the encode method.
- Changed the address comparison used when receiving an UDP packet to just
include the port and address information in order to work around an AIX
problem.
RELEASE 1.20 NOV-06-1998
- Now use gensym() from the Symbol module to generate typeglob references
for socket handles, correcting a memory leak.
- All private methods renamed to Perl programming style recommendations.
RELEASE 1.10 OCT-14-1998
- New method trap() for sending SNMP Trap-PDUs added.
- New method error_status() which retrieves the SNMP error-status contained
in the last SNMP GetResponse-PDU added.
- Named arguments for the method session() are now validated.
- New export tags ":asn1", ":generictrap", and ":ALL" added.
- New exportable symbols for generic-trap types added.
- A comma contained in an OCTET STRING no longer causes the decoded result
of a GetResponse-PDU to be converted to a hexadecimal representation if
translation is enabled.
- The control characters \n\r\t no longer trigger an OCTET STRING in a
GetResponse-PDU to be converted to a hexadecimal representation if
translation is enabled.
RELEASE 1.00 SEP-09-1998
- Initial release.
RCS
$Id: Changes,v 4.4 2002/09/09 12:46:09 dtown Exp $