|
While adding rows to a table on the agent side (initially the table being empty) by performing polling with SnmpTableModel, the table on the manager side was not getting updated. This issue has been fixed.
Null Pointer Exception was thrown while instantiating MibBrowser when the applet parameter was null. This issue has been fixed.
In the Trap Viewer, the trap count was incremented even for traps that were dropped when the parser was loaded. This issue has been fixed.
Context Name not getting set in v3 mode for LineGraph and BarGraph. This issue has been fixed.
Two or more instances of SnmpTarget are created and after performing some operations when releaseResources() is called on all the SnmpTarget instances, the getMibOperations() method returned null only for the last SnmpTarget instance created. However, when invoked on other SnmpTarget instances, it did not return a null value. This is not the correct behavior and this has been fixed.
Using snmpGetAllVariableBindings() method, if a request was sent to a table (present at the end of the MIB file) in which the rows are not implemented, the SnmpTarget's getErrorString() method returned a 'No Error' message instead of 'End of Mib file'. Also, the GETNEXT requests were sent again even after the occurrence of the error. These issues have been fixed.
Using snmpGetBulkVariableBindings() method if a request was sent to a table (present at the end of the MIB file) in which rows are not implemented, the SnmpTarget's getErrorString() method returned a 'No Error' message instead of 'End of Mib file'. Also, the GETBULK request was sent again even after the occurrence of the error. These issues have been fixed.
When setAttemptComplete() was enabled, the SNMP version being v3 and the response from the agent contained NOT_IN_TIME_WINDOW error, the request was running in an infinite loop. This issue has been fixed.
When setAttemptComplete() was enabled and the SNMP operation was GETBULK, the request was running in an infinite loop. This has been fixed.
When setAttemptComplete() was enabled and the SNMP operation is GETBULK with the Non Repeaters value set, the Non Repeaters value for each outgoing packet is not set properly. This has been fixed.
While handling more than one result listeners, if the removal of the listeners is not in the same order in which they were added, the message "Error: No such Listener available" was printed. This issue has been fixed.
While creating parser files for receiving v2c traps, the mandatory value SysUpTime has now been made optional.
The public method getCompleteResponse() in SnmpTarget runs into infinite loop in case of SNMPv3 if NOT_IN_TIME_WINDOW OID is present in response. This issue is fixed now and the corresponding error string and error code are set.
The color of the trap defined in the trap parser was not displayed properly. This has been fixed.
If the method snmpSetVariables() of SnmpTarget takes a zero-length argument, the subsequent call to snmpSetVariable() method was throwing ArrayIndexOutOfBoundsException. This has been fixed.
In tables where holes are present, the values are not retrieved properly in SnmpTable. This issue has been fixed. Note that this issue has also been fixed in SnmpTablePanel of MibBrowser.
While querying tables, if the agent returns all the column values except the index column value, no row is displayed in SnmpTablePanel. This issue is fixed.
While querying Windows agent, an infinite looping occurs if setAttemptComplete() of SnmpTarget is true, and any of the OID is invalid. This issue arises only in case of SNMPv2c. This issue has been fixed.
In MibBrowser, while performing a GETBULK operation, if the end of MIB is reached, the proper response varbinds that are received till "End of Mib View" message are not displayed. This issue has been fixed.
In the Trap Details section, the node, entity, and source were displaying the RemoteHost. This has been changed as Node and Source displaying the RemoteHost, and Entity displaying the AgentAddress.
Dialogs in MibBrowser are made modal.
The error code and error string were not set if any of the v3 specific errors occur. This issue has been fixed.
When a GETBULK request in sent to the agent, the getErrorIndex() always contains the max repetition value even if the GETBULK is successful. This issue has been fixed.
The callback was not getting invoked while performing v3 discovery and time sync. This issue is fixed.
In asynchronous mode, if an entry is already added for agent in the same host and port in a different security level and when the engineID was not specified, timesynch will not be performed. This issue is fixed.
In SnmpTable panel, the set of values (values got by clicking the Next button) could not be retrieved for a table containing a not accessible index. This issue is fixed.
The callback was not getting invoked while performing a v3 discovery and time sync. This issue is fixed.
The time synchronization was not performed in case of asynchronous mode if an entry is already added for the agent in the same host and port with a different security level and the engineID was not specified. This issue is fixed.
While loading MIB file with multiple modules in Trap Parser, the traps/notifications defined in those MIBs are not getting loaded. This issue is fixed.
When the agent is restarted, the Engine boots and Engine time was not getting updated in a multi-threaded environment. This issue is fixed.
It takes a lot of time to invoke the applet while using internationalization. This issue is fixed.
When two targets instance are created with one taking applet in the constructor and the other created using an empty constructor, both the instance uses the SAS server for communication or communicated through UDP depending on the order of creation. But, applet should communicate only through SAS and the other target instance using UDP sockets. This issue is fixed.
In the HttpMibBrowser, traps are not received properly when more than one client is connected. This issue has been fixed.
Previously we were not able to add an SNMP V3 user in the HttpMibBrowser. Now this issue has been fixed.
In the HttpMibBrowser, traps are not received properly when more than one client is connected. This issue has been fixed.
Previously we were not able to add an SNMP V3 user in the HttpMibBrowser. Now this issue has been fixed.
The fix was made in the getInstance method of the RequestHandler class. The getRow method of SnmpTable returned an extra row in a particular case. In order to fix that a new if condition was included in the getInstance method of the RequestHandler class.
This is regarding the close button in the MibDesription UI. When a MibDescription is invoked separately apart from the MibBrowser, the UI appears properly. But the close button in the UI does not work. This issue is fixed.
In the TrapBrowser UI the value of the generic trap is displayed as numbers like (0,1,2,3,4,5). Now it is fixed and will be displayed in detail like (coldStart,warmStart,....)
Previously while performing a Set operation, the variable creation was done directly, but it is necessary to check whether the variable is created properly. This fix is done and if the variable is not created properly a DataException error will be thrown.
New methods setPacketBufferSize(int) and getPacketBufferSize() are added in SnmpServer to set and get the buffer size of the packet.
In TrapViewer if the varbind type is DateAndTime, the message is displayed in raw bytes, this issue is fixed and also the relevant mib need to be loaded in MibBrowser for displaying it in proper format.
Avoiding the unnecssary sleep in the SnmpRequestServer during response despatching.
When the oid set is given with an extra dot "." at the end, the trailing dot will be removed from the set OID
When the set OID is of syntax IPADDRESS and the value to be set is some unknown host, then an improper error message is thrown. Now this is fixed and a Data Exception "Error : Creating variable " will be thrown.
Fix for reflecting the community value from the MibBrowser into the Settings panel of TableViewer.
Fixed the problem while getting the indices of a table of type MacAddress.
Fixed the problem in getErrorCodes on doing a multivarbind request.
Fixed the IllegalAccessError on accessing SasFileDialog.applet from SasClientFunction.
Fixed to invoke the table Line graph / table Bar graph from SnmpTable of MibBrowser Applet.
Fixed the exception on closing the SnmpTablePanel description window from MibBrwoser Applet.
Fixed the ArrayIndexOutOfBounds Exception when getIndices() method is called in empty table.
Fixed the exception which arises while calling getRow() in SnmpTable.
Fix provided in SnmpRequestServer to notify the listener with the timeout events in case of Discovery or TimeSynchronization failures.
Fix provided to view the table in table viewer of MibBrowser when the table contains more than one not-accessible index .
Whenever an SnmpOID is created using an invalid OID, the API by default will print "Invalid OID format" to the standard output. Now this print is removed.
The getUpTime() method of SnmpPDU will return the time value even in case of v2 traps and informs. That is, in case of V2Traps and informs, the method will get the value from the first varbind.
The open method of SnmpSession is made to throw an SnmpException if it is called for the second time.
When the localAddress and the localPort is specified in the SnmpSession, the DatagramSocket is not opened in the specified local port. This issue is fixed.
When the SnmpSession, which is created using the localAddress, is closed, the socket is not closed properly. This issue is fixed.
In USMUserEntry, while sending or receiving a SNMPv3 request, an unnecessary DNS lookup is being done. This lookup is avoided now.
The init_v3_params() and init_v3_parameters() methods of USMUtils class will now revert back to older authProtocol and authPassword, if the newly provided authProtocol or authPassword is found to be invalid. This reverting back of values in the USMUserEntry will take place only when the init_v3_params() or init_v3_parameters() method is called for the second time for the same user with different authProtocol or authPassword.
The method getHashTableEntry(String host, String port) of USMUserTable fails in case of database. As an alternative, a new method getEntries(String host, int port) has been provided in USMUserTable.
If the syncSend returns a response which contains a NOT_IN_TIME_WINDOWS OID, a request will be now sent to get the correct response.
The performance of the method toString() in the class SnmpOID has been improved.
The decoded result String of GET BULK request PDU contains the Error Status and Error Index field instead of Non-Repeaters and Max-Repetitions. This issue has been fixed.
When a request PDU is sent without setting the clientID, the response will not be sent to the callback method of the client which is registered via addSnmpClientWithID(SnmpClient).
When an asynchronous discovery request is sent to an unknown port, the SnmpEngineEntry will be deleted from the SnmpEngineTable.
While retrieving a table using HTTP MibBrowser, a timeout error is received frequently. This issue has been fixed.
If the USM table is unregistered from SnmpAPI, the setV3DatabaseFlag method throws a NullPointerException. This issue is fixed.
SnmpPDU's copy method does not copy the ProtocolOptions object. This has been fixed and now the method will return a new PDU object with ProtocolOptions object set.
Previously, we were handling the SMIv1 INTEGER with the range - 231 to 231 - 1. Now it is made to handle the range - 263 to 263- 1.
Serialization of SNMPv3 PDU was not possible before. This has been fixed.
The acknowledgement packets always have SNMP version set to v1 even when the incoming notifications are SNMPv2c or SNMPv3 informs. This issue has been fixed.
The discovery report is not received when an SNMPv3 inform is sent as a discovery request with an username other than "initial" and zero length String. This issue has been fixed.
When agent A sends an inform and agent B sends a trap simultaneously, then the inform acknowledgement was sent to B instead of A. This issue has been fixed.
If an IP address is sent as one of the varbinds with the Character Encoding set other than the default one, then "Trying to allocate VERY BIG PDU" error is thrown. This issue has been fixed.
If none of the SnmpClients' callback method returns true, then the response is not added in the response list. This issue has been fixed now, by adding the response to the response list.
When the method setOIDPrefix in the SnmpAPI class is called with "." as argument, then ".0." is prepended to the OID instead of ".". This issue has been fixed now.
In case of TCP transport, when the server connection is lost, the receiver thread of SnmpSession is not closed, which causes 100% CPU. This issue has been fixed.
When the method setOIDPrefix in the SnmpAPI class is called with "." as argument, then ".0." is prepended to the OID instead of ".". This issue has been fixed now.
Previously, while performing the v3 related database operations, whenever the connection fails, our api will not repair or replace the connection. Now whenever the connection fails, we create a new connection.
Timesten Fix : Made a minor fix to support timesten database.
When invalid security model was given in SnmpTargetParamsTable, null pointer exception was thrown. This issue has been fixed
An extra varbind(AgentAddress varbind) was added in the Trap if Target.Community notification support was enabled. This issues has been fixed.
The counter usmstatsDecryptionError (.1.3.6.1.6.3.15.1.1.6) was not incremented when decryption failure error occured. This issue has been fixed.
When entries in SnmpNoticationTable were modified at run time, Notifcations were not sent as expected. This issue has been fixed.
When Agent received any SNMP packet with messegeID as zero, it returned the response with some other messegeID. This issue has been fixed.
If noAuthnoPriv entry is added in the UserTable(v3ConfigTable), an unnecessary timesynchronization request had been sent.This issue has been fixed.
V3 SNMP operations over TCP was not working. This issue has been fixed.
Fixed Memory leak issue on closing the SnmpAPI w.r.t snmpGroupTable.
Unwanted prints like "There is no serialized object" is commented.
Issue in storing the port (high-order-byte , low-order-byte swap ) is fixed .
Issue in creating the table VACMCONTEXTTABLE in FireBird database is fixed.
Fixed the issue to delete the entry in USMTABLE when timeSynchronization fails.
Fixed the issue in displaying the SnmpCounter32 value as positive number if the leading bit is set to 1.
Fixed the issue in incrementing the EngineTime insync with the agent.
When the MIB is loaded from the serialized MIB file and when the method getMibNode(Vector) of MibModule is called with numbered OID String as the argument, NullPointerException is thrown. This has been fixed.
While loading the MIBs using the method loadMibModule(Applet, URL), the primary modules are searched in the specified location. Though the MIB path is specified and the MIB is present in the specified location, while loading the imported modules, the MIB is being searched in some other location and at last it finds the MIB in the specified location resulting in performance problems. This issue has been fixed.
When getMibNode() is called, the first occurrence of the node is returned. Suppose if a module imports a node, sometimes this method returns the node corresponding to the imported module. But the node corresponding to the imported module does not contain all information about the node. Therefore the node instance corresponding to the parent module alone is returned.
If the syntax of the node is a Standard TC, the (syntax instanceof MibTC) was returning false. This issue has been fixed.
If the primary module is present in one directory and the imported module is present in another directory and if the filename and the module name of the imported module are different, FileNotFoundException is thrown, when we try to load the primary module even if setMibPath() of MibOperations class is called with these two directories as argument. This issue has been fixed.
For some MIBs (for example P-BRIDGE-MIB extracted from RFC2674), the method getRootNode() does not return the correct root resulting in incomplete MIB tree. This issue has been fixed.
When the method setMibPath() in MibOperations is called with some directories as argument and when we try to load a MIB which is located in some other directory not specified in the setMibPath (by giving the full path of the MIB file) the FileNotFoundException is thrown. This issue has been fixed.
If an OID which is not present in a MibModule is given as argument, the method getMibNode() of MibModule class returns the available node present in this module which matches a part of the OID given, instead of returning null. This issue has been fixed.
Since the method getMibNode() of MibModule fails, the method translateToNames also fails, as it uses the getMibNode() internally. This has been fixed.
The OutOfMemory Exception was thrown when we try to load a MIB which is in not in same case as the file that is present in the directory. This issue is reproducible only in Windows. This has been fixed.
The performance of the method getMibNode(SnmpOID) in MibOperations has been improved.
In the method createVariableBinding(varName, indexes, value) of MibOperations, if the first character of the argument varName is an alphabet and if second character is a number, then IllegalArgumentException was thrown. This issue has been fixed.
After loading a MIB and unloading it, if the MIB file is loaded again, the getMibNode(SnmpOID) of MibOperations returns null even for a valid node present in this MIB.
Support for loading the MIBs through various protocols supported by java.net.URL has been provided.
When an SnmpOID constructed with an invalid String is passed as an argument to the method getMibNode(SnmpOID) of MibOperations, NullPointerException is thrown. This issue has been fixed.
The method getMibVersion() of MibModule returns true for an SMIv1 MIB if an SMIv2 MIB containing Standard TCs is loaded along with this SMIv1 MIB. This issue has been fixed.
Loading MIBs from the archive (zip or jar) failed when the complied MIBs option is used. This issue has been fixed.
The MIB file in the current directory is loaded even if the MIB is loaded with some other path where the MIB is present. This issue has been fixed.
The space separated directory could not be set using the method setMibPath of MibOperations. This issue has been fixed.
While adding a scalar node under an object identifier, NullPointerException is thrown. This issue has been fixed.
While adding augments/external indices for a table, NullPointerException is thrown. This issue has been fixed.
In a Multithreading environment, the method getNearestNode(SnmpOID) in the class MibOperations sometimes doesn't returns the nearest node, but some other node much higher in the tree. This issue has been fixed.
If the syntax of a node is OBJECT IDENTIFIER and if its DEFVAL clause contains the value 'zeroDotZero', then the MIB tree is incomplete. This issue has been fixed.
The MIB loading performance has been improved especially in case of MIB files which is larger in size.
Loading a MIB file with a imported module and the imported module is in a MIB as a second module(Multi Modular MIB). Also the imported mib modules name and the name of the file(MIB) in which it is present are different.
Fix for DecodeInsanceString method where the last Index is of type OBJECT IDENTIFIER and is Implied. Previously Implied is not properly considered.
The method snmpGet in SnmpTarget returns incosistent result in threaded environment. The method for any oid sometimes returns string formated oid (e.g .iso.org. and numeric oid the other time.The fix is done by synchronizing the method getNearestNode in MibOperations.
Issue in loading the .ser file. Previously .ser file gets loaded only when the corresponding MIB is present in that location. Now the fix has been done to load .ser file without the necessary mib file.
In the method getRange(String s), counter to increase the BITS value is corrected, instead of loop counter.
Issue in loading the mib with .MIB extention is fixed.
Fix for loading the mib where the root mib and its imported mibs are from space seperated directory from MibBrowserUI.
If the setTrapAuthEnable() method of SnmpTrapReceiver set to true, v1 and v2c traps will be authenticated using the community strings. In addition, v3 traps will be authenticated. If set to false, all the traps will be received irrespective of the value of the community.
A new method setCommunityAuthEnable(boolean) has been added in SnmpTrapReceiver to enable or disable the authentication of community name, the default value being true.
A new method setV3AuthEnable(boolean) in SnmpTrapReceiver has been included to enable or disable the authentication of V3 trap, the default value being true.
Two new methods isV3AuthEnabled() and isCommunityAuthEnabled() in SnmpTrapReceiver have been included to verify the current status of the authentication.
Feature to enable and disable authentication of v3 traps and community name has been provided in TrapViewer.
A new method setMibPath(String) has been added for setting the MIB search path in MibBrowser bean.
Facility to copy rows in SNMP table of MibBrowser has been provided.
While performing the parsing and validation of the MIB files, the default parsing level is changed from NORMAL to LENIENT.
Two new static methods namely addUserError() and getUserErrorString() for handling user-defined error codes have been added in each of the following classes: ErrorMessages, SnmpTarget, and SnmpRequestServer.
New methods setSimpleDateFormat() and getSimpleDateFormat() have been included in the SnmpSession class, to change the date format that is printed when debug is on. These methods are also included in SnmpTarget and SnmpTrapReceiver.
If the engineID is known, the SNMPv3 discovery need not be done. For this purpose, a new public method (init_v3_parameters) which accepts engineID as an extra argument has been added in USMUtils. This will not perform the SNMPv3 discovery. In the SnmpPDU class, two new public methods setEngineID() and getEngineID() have been added.
New methods setEngineID() and getEngineID() have been added in SnmpTarget to get and set the v3 engine ID. The setEngineID() has been added in SnmpTablePanel for the same purpose.
New constructors have been included in SnmpTarget, SnmpTable, and SnmpRequestServer classes that take instances of SnmpSession and MibOperations as parameters.
Two public methods setBroadcastFeatureEnable(boolean) and isBroadcastFeatureEnable() have been added in SnmpServer to enable/disable the broadcast feature.
Two public methods setBroadcastFeatureEnable(boolean) and isBroadcastFeatureEnable() have been included in SnmpSession to enable/disable the broadcast feature.
A new method getPduErrorIndex() has been added in SnmpTarget to get the error index set in the PDU.
A new method snmpSetVariableList(SnmpVar[]) has been added in SnmpTarget for setting a list of values. This method will return the response of SnmpVarBind[] type.
A utility called GetSnmpReleaseVersion has been included to print the release version of the product.
Detailed error messages are displayed in case of TimeSync failure while adding a v3 entry.
A new method getVariable(SnmpOID oid) has been added in SnmpPDU to get the variable using the Object ID.
The total number of bytes is printed along with the packet dump.
The new method validateUser(boolean) of SnmpServer is used for enabling or disabling validation of users while adding v3 entries. The isValidateUser() can be used to check if the validation is enabled.
A new public method called timeSynchronize(SnmpSession, SnmpPDU) has been added in USMUserEntry to do the time synchronization which throws Exception when any error occurs.
When init_v3_parameters() of USMUtils is called for a NO_AUTH_NO_PRIV user with the boolean validateUser set to true, a request is sent to check if the user exists.
When init_v3_parameters() of USMUtils is called for an AUTH_PRIV user with the boolean validateUser set to true, a request is sent to check the priv password.
Previously in MibBrowser, while adding NO_AUTH_NO_PRIV users in the USM table, the entry is added even if the user does not exist. It has now been made to check if the user exists. Also, while adding AUTH_PRIV users, the priv password is checked.
The create_v3_tables() of SnmpServer is now made to set the v3-specific error codes.
A new constructor and a method has been added in the SnmpInt class to accept and return a "long" value. This has support for 64-bit integer values for INTEGER data-type. This is mainly for SNMPv1, because SNMPv2c/SNMPv3 has only 32-bit integer values.
A new method called getNumericValueAsString() has been added in the SnmpVar class. This method will return the numeric data in the decimal form rather than in any other form. This will ensure uniformity in obtaining the numeric data from SnmpVar class.
A new method called isOperationInProgress() is added in the MibBrowser class. This method returns a boolean value, true if an operation (like GET, SET) is in progress and false if not.
The MIB loading performance has been improved especially in case of MIB files which is larger in size.
Provided an option for the ServerSocket that can be bind to the specified local IP address in the method init(Object[] params) of TcpServerTransportImpl.java. The local IP address can be specified in params[5] in the input Object[] argument.
Provided an option for the SAServer to bind to the localAddress.
Provided an applet constructor in MibBrowser with boolean argument (MibBrowser(applet,boolean)) to disable the JDBC parameters during initialization of the settings panel.
An api method to get the NotificationType object by passing a trapOID as argument is introduced in MibOperations. The method added is getNotificationType(SnmpOID trapOID), in the class MibOperations.
New methods setTrafficClass(int) and getTrafficClass() are added in UDPProtocolOptions to set and get the trafficClass in the DatagramSocket used for SNMP communication. This feature can be used only with 1.4 and above JDK versions.
The option for privprotocol in the low-level example application are provided for the following :
snmp
snmpgetnext
snmpbulk
snmpwalk
snmpset
New Feature added for loading mib file from applet with its import files in different directories.
Augment table support is included.
A new method deleteTableRow() is added in SnmpTable to throw DataException.
Option to enable / disable the debug option in rmiserver.SnmpFactoryImpl.class is given.
New method getTCList(SnmpOID) is added in MibOperations.class ,used to get all the Textual Conventions for the given snmp oid drill down to the base level.
New methods setV3MsgMaxSize(int size) and getV3MsgMaxSize() are added in SnmpServer class to set and get the maximum size of snmpmessage respectively.
CFB-AES-128 support is included in high level api .
In Snmp V3, support for IBM JCE (com.ibm.crypto.provider.IBMJCE) included.
Support for JDK1.5
|