0.7.4
* bug fix in Pdu.encode() that failed to add sysUpTime and trapObjectID to VbList with 0 items in SNMPv2 TRAPs/INFORMs. Thanks to Michal Narwojsz for report and fix.
0.7.3
* reverted to using Array.Copy from Buffer.BlockCopy to fix newly introduced bug (no performance benefit from Buffer.BlockCopy)
0.7.2
* in SecureAgentParameters removed _version variable since ony a single version is supported there is no need for a variable
* added OctetString.SetRef and OctetString.OctetString(byte[], bool) to allow setting class value to parameter reference
* replaced all calls to Array.Copy with Buffer.BlockCopy to improve speed
* fixed a bug in OctetString.ToString() that tried to do ASCII print on hex strings
* added OctetString.IsHex property (get only)
0.7.1
* changed Oid._data from private to protected
* changed Oid.GetData() from internal to protected
* changed OctetString._data from internal to protected
* changed Integer32._data from internal to protected
* removed Integer32.Integer32(ref Int32) constructor. There is no need for it
* changed UInteger32._data from internal to protected
* changed UInteger64._data from internal to protected
* added Opaque.Opaque(string) constructor to match parent constructor OctetString.OctetString(string)
* added Gauge32.Gauge32(UInt32) constructor
* added Oid.IsNull property. Oid null is an empty Oid (shouldn't happen) or 0.0 value. This is a shortcut to check for both conditions
* fixed lexographical compare in Oid.Compare(...) methods. Previously, longest method was always greater which is not correct
* added Oid.CompareExact(int[]) and Oid.CompareExact(Oid) methods for exact Oid comparison (not lexographical)
* changed Oid.Equals to use CompareExact method instead of Compare
* fixed retry count in UdpTransport. Retry count of 0 should result in 1 request instead of 2 prior to fix
* fixed IP address parsing in SimpleSnmp.Resolve(). Now it happens only once :)
* added IpAddress.IsIP(string) method
* fixed SnmpV3Packet constructors so that class ScopedPdu is never null (most of class methods assume it is not)
Thanks to bug reports, improvements and fixes by Pavel Tatarinov:
* fixed negative array length in Oid.GetChildIdentifiers
* set context engine id and name in SecureAgentParameters.UpdateDiscoveryValues
* fixed OctetString.Equals to return true if both class value and parameter are null arrays
* removed duplicate setting of context engine id and name in UdpTarget.Request
* added SnmpV3Packet(SecureAgentParameters) and SnmpV3Packet(SecureAgentParameters,ScopedPdu) constructors
* added PduErrorStatus enumeration. Pdu and ScopedPdu classes continue to use Int32 for ErrorStatus to avoid dependency
on the enumeration that, over time, might become out of date and break class operation. Use the enumeration with a cast.
0.7.0
* implemented TripleDES privacy protocol
0.6.0
* implemented AES-192 and AES-256 privacy protocols
0.5.3
* changed IAuthenticationDigest.getDigestLength to IAuthenticationDigest.DigestLength
* added HMACSHA1.Clear() to AuthenticationSHA1 class to release allocated resources prior to method return
* added IAuthenticationDigest.CalculateHash() method (implemented in AuthenticationMD5 and AuthenticationSHA1)
0.5.2
* changed Pdu.Type from byte constants in SnmpConstants to PduType enum to avoid mistakes
* changed TrapPdu.encode to use VbList.encode instead of encoding individual Vb entries in a loop
* added TrapAgent helper class for simplified sending of Traps
* added offset check in AsnType.ParseLength that now throws OverflowException when end of buffer is reached
* added [Serializable] flag to all the Type classes
* reordered operations in Null.decode so parsed ASN.1 type is checked before field length
* removed Opaque.ToString(). Base class OctetString.ToString() and OctetString.ToHexString are adequate.
* bugfix: Integer32.decode() BER decoding of negative numbers fixed
* improved Integer32.encode() method
* changed TrapPdu properties Generic, Specific and TimeStamp to return native data types (Int32 and UInt32) instead
of library specific Integer32 and TimeStamp class references
* added VbCollection.Add(VbCollection) method to easily append contents of one collection to another
* changed TrapPdu.Set(AsnType) to TrapPdu.Set(TrapPdu)
* changed TrapPdu.Enterprise property from get/set to get only returning Oid object reference
* changed Pdu.encode to use private variables and not properties when encoding internal values
* removed generating a random Pdu.RequestId in SnmpV2Packet.encode because it is already done in Pdu.encode
* changed Oid.Set(AsnType) to Oid.Set(Oid). Didn't make sense to keep AsnType parameter when only Oid type is processed
* removed Pdu.Reset() call from Pdu.SetVbList() and replaced it with VbCollection.Clear()
* renamed SnmpV1Packet.SnmpCommunity, SnmpV1TrapPacket.SnmpCommunity and SnmpV2Packet.SnmpCommunity property to Community
* changed SnmpV1Packet.decode, SnmpV1TrapPacket.decode and encode, SnmpV2Packet.decode methods from using Community
property to using _snmpCommunity protected variable
* changed Oid.encode to allow encoding of 0 length Oid values
* changed Pdu class to set NonRepeaters to zero and MaxRepetitions to 100 when type is changed to GetBulk
* added SnmpInvalidPduTypeException when trying to access Pdu properties ErrorStatus and ErrorIndex in GetBulk Pdu Types
0.5.1
* bugfix: Pdu.Reset() setting RequestId value to 0 had unintended consequences. Changed to increment existing
requestId by 1
* bugfix: UInteger32.operator == StackOverflowException fixed
* bugfix: Integer32.operator == StackOverflowException fixed
* added greater then and less then (< and >) operators to the Oid class
* added greater then and less then (< and >) operators to the Counter64 class
0.5.0
* SimpleSnmp class created with Get, GetNext, Set, GetBulk methods making it easy to use SNMP in C#
- first version of the class = only basic testing completed
- all methods are blocking. At this time async calls can only be made using UdpTarget.AsyncRequest method
- all network calls are made using UdpTransport class methods
* added SnmpConstants.INFORM to Pdu and SnmpV2Packet classes for proper handling of INFORM packets
* removed Socket.Shutdown() call from UdpTransport.Dispose() method to avoid SocketException under MONO
* added SnmpConstants.REPORT to allowed Pdu types to access TrapSysUpTime and TrapObjectID. Needed to encode
RESPONSE packet for INFORMs.
* added helper methods SnmpV2Packet.BuildInformResponse() and a static SnmpV2Packet.BuildInformResponse(SnmpV2Packet)
- makes it easier to create RESPONSE to INFORM packets
- static method takes a INFORM packet parsed into SnmpV2Packet and generates a correct response class
- member method calls the static method with 'this' parameter referencing itself
* removed commented out SNMPV1, SNMPV2 and SNMPV3 static variables from SnmpConstants
* SnmpV3Packet.Discovery() method removed setting of user name to "initial" and change it to null (0 len) value
* Changed IAgentParameters.Version to SnmpVersion type from Int32 (associated changes in AgentParameters and
SecureAgentParameters classes)
* Renamed SnmpPacket.ProtocolVersion property to SnmpPacket.Version and changed type from Integer32 to SnmpVersion
* Changed SnmpV3Packet.MessageId property type from Integer32 to Int32 and from get only to get/set
* Changed SnmpV3Packet.MaxMessageSize property type from Integer32 to Int32 and from get only to get/set
* Changed UserSecurityModel.EngineBoots prop type from Integer32 to Int32 and from get to get/set
* Changed UserSecurityModel.EngineTime prop type from Integer32 to Int32 and from get to get/set
* Changed inheritance of SnmpV2Packet from SnmpV1Packet to SnmpPacket for more flexibility in the future
* Removed IDisposable interface from UdpTransport. Replaced with Close() method for direct user access to
socket closing and
评论12
最新资源