Skip to content

Releases: lextudio/sharpsnmplib

TritonMate release (8.0)

30 Oct 06:47
Compare
Choose a tag to compare
  • Work item 7239 Bug in SecureSnmpContext.HandleMembership method is closed.
  • Work item 7240 System.ArgumentException truncation error for 32-bit integer coding is closed.
  • Work item 7241 v1 walk throws exception on bad(?) data from printer is closed.
  • Work item 7243 SNMP v3 discovery bug is closed.
  • Work item 7245 Exception on V3 Inform discovery messages is closed.
  • Work item 7253 Report engine time exceeds RFC max value is closed.
  • Samples are enhanced according to RFC 3414.
  • Added official Xamarin.iOS (MonoTouch) and Xamarin.Android (Mono for Android) support.
  • Engine assembly is ported to .NET CF.
  • Implemented ifTable in snmpd.
  • Name to OID resolution is added in snmptranslate sample.
  • Added BytesViewer sample.
  • Library re-licensed under MIT/X11.

Please ignore the "rc" names in the download files, as they are stable.

Breaking Changes

  1. IEntity.ModuleName is removed. Replaced by IConstruct.Module.
  2. IModule.Types is removed. It is no longer needed.
  3. EngineGroup.ReportCount is removed. Please use EngineGroup.NotInTimeWindow.
  4. Signature of EngineGroup.IsInTime is changed.
  5. ISnmpContent.HandleAuthenticationFailure is removed. It is no longer needed.
  6. Signature of one constructor of CompilerError is changed.
  7. ObjectIdentifierType.ModuleName is removed. Please use IConstruct.Module.
  8. SnmpType.UInt32 is removed. It is no longer needed.

New APIs Added

  1. IEntity.ParentModule is added.
  2. Module, Line, and CharPositionInLine are added to IConstruct.
  3. A new constructor is added to Discovery to support more discovery message types.
  4. EncryptedScope and a new constructor are added to MalformedMessage.
  5. Several new items are added to Messenger to support more discovery message types and also OID to error message conversion.
  6. Several new items are added to EngineGroup to implement SNMP v3 required counters.
  7. Constructors that accept Int64 are added to Counter32 and Gauge32.
  8. A new constructor is added to InformRequestPdu to assist discovery message generation.
  9. OctetString.IsNullOrEmpty is added.
  10. SecurityParameters.IsInvalid is added.

BigDipper Refresh release (7.5)

30 Oct 06:48
Compare
Choose a tag to compare

This is a bug fix release (7.5.10510.1) with limited breaking API changes.

  • Work item 7224 Refactor core classes to consider byte array length while parsing existing packets is closed.
  • Work item 7225 RFC2021 TimeStamp Error is closed.
  • Work item 7226 Create a new MIB compiler based on ANTLR is closed.
  • Work item 7227 New compiler does not support some comment style is closed.
  • Work item 7230 Exception during walk: unsupported data type: opaque is closed.
  • Work item 7232 Trap V3 authentication fails when system uptime over 25 days is closed.
  • Work item 7234 ISnmpMessage.BeginGetResponse/EndGetResponse pair doesn't work in Task.FromAsync is closed.

Based on change set

https://github.com/lextm/sharpsnmplib/tree/de58f7c050a0976654e7ee4b90a9217e99af6ae3

*Mono for Android assemblies are based on lextm@c83387c
Mono for Android assemblies under LGPL are removed from this release. Please go to TritonMate (8.0) which contains updated ones under MIT/X11 license.

Tested on

  • Windows 7 SP1
  • Windows 8 Release Preview

.NET Framework support policy is changed, so please read this KB article first.

  • Re-licensed part of the code base under permissive licenses (MIT/X11 and BSD 3 Clause).

Core assemblies changes from 7.0

New Assembly

.Engine is added and .Pipeline/.Objects namespace are moved to this new assembly.

New Public Types

No new type is added in SharpSnmpLib, except those types from System.Tuples project.

SharpSnmpLib.Mib is rewritten, so except old classes from previous version, such as ObjectRegistryBase derived classes and others, the low level classes are completely different, such as MibModule.

Changed Interfaces (Breaking)

The following interfaces are changed,

  1. IConstruct
  2. ITypeAssignment
  3. IEntity
  4. IObjectRegistry
  5. IObjectTree
  6. IAuthenticationProvider

Obsolete and Deleted Classes (Breaking)

  1. DefaultObjectRegistry (Resolution: Use SimpleObjectRegistry.)
  2. GetResponsePdu. (Resolution: Use ResponsePdu.)
  3. Integer64. (Resolution: not needed by #SNMP any more. If need it, use the old class from a previous release.)
  4. Low level classes under .Mib (Resolution: Try to use the new classes.)

Removed Methods (Breaking)

  1. ByteTool.PackMessage() (Resolution: Use the new overload.)
  2. .ctor that accepts Stream for ISnmpData derived classes (Resolution: Use the new ctor that accepts Stream in each classes.)
  3. IObjectRegistry.Decode and IObjectTree.Decode. (Resolution: Wait till #SNMP 8.)
  4. Two constructors of Sequence class. (Resolution: Use other constructors.)
  5. Many methods in StreamExtension class. (Resolution: Either use the new overload, or alternative methods in other classes.)
  6. ctor of ISnmpMessage derived classes. (Resolution: Use new ctor instead).
  7. SnmpMessageExtension.PackMessage. (Resolution: Use new overload).
  8. IAuthenticationProvider.ComputeHash. (Resolution: Use new methods).
  9. AuthenticationProviderExtension.VerifyHash and CleanAuthenticationParameters. (Resolution: Use new methods.)
  10. Other changes under .Mib namespace.

BigDipper release (7.0)

30 Oct 06:49
Compare
Choose a tag to compare

Tested on

  • openSUSE 11.4 x86,
  • Windows Vista SP2 x86,
  • Windows 8 Developer Preview x86.
  1. SharpSnmpLib.Controls.dll is removed. Its components are moved to SharpSnmpLib.dll.
  2. Asynchronous support is added to ISnmpMessage derived classes.
  3. Compiler core is enhanced.

Core assemblies changes from 6.1.1:

Although in this release we only performed cleanup, a lot of the corners are touched heavily.

New Public Types

This query return a lot, but in fact only several new types are added to enhance the MIB compiler, such as

  • MaxAccess
  • Status
    and some extension classes to define extension methods which simplifies the code base a lot, such as
  • SnmpDataExtension
  • StreamExtension
  • AuthenticationProviderExtension
  • EndPointExtension

Most of classes returned from this query are in fact moved from old places to new ones, such as

  • ITypeAssignment moved from .Mib
  • Levels moved from .Security

Changed Interfaces (Breaking)

The following interfaces are changed,

  1. ISnmpData
    1, IDefinition
  2. IModule
  3. IObjectRegistry
  4. IObjectTree
  5. ISnmpMessage
  6. IAuthenticationProvider

Obsolete and Deleted Classes (Breaking)

  1. GetResponseMessage under .Messaging.(Resolution: Use ResponseMessage.)
  2. GetResponsePdu. (Resolution: Use ResponsePdu.)
  3. Integer64. (Resolution: not needed by #SNMP any more. If need it, use the old class from a previous release.)
  4. Integer under .Mib

Removed Methods (Breaking)

  1. ByteTool.ToBytes(ISnmpData) (Resolution: ToBytes is now an extension method in SnmpDataExtension class.)
  2. ISnmpData.ToBytes() (Resolution: ToBytes is now an extension method in SnmpDataExtension class.)
  3. All ISnmpData derived classes have ToBytes method. (Resolution: ToBytes is now an extension method in SnmpDataExtension class.)
  4. Header.Header(Integer32, Integer32, OctetString, Integer32) (Resolution: Use other constructors.)
  5. MalformedPdu.Instance (Resolution: Construct objects instead of using this default one.)
  6. SearchResult.GetStringOf(ObjectIdentifier, IObjectRegistry) (Resolution: Use 1. 1. ObjectIdentifier.ToString(IObjectRegistry).)
  7. OctetString.ToDateString() (Resolution: Use GetRaw() to get the raw bytes and then parse on your own.)
  8. Sequence.ctor(IEnumerable) (Resolution: Use other constructors.)
  9. Sequence.Count (Resolution: Use Sequence.Length.)
  10. ISnmpMessage.Pdu, RequestId, MessageId. (Resolution: Moved to SnmpMessageExtension as extension methods.)
  11. All ISnmpMessage derived classes Variables, RequestId, Pdu, MessageId, Community, GetResponse(*). (Resolution: Moved to SnmpMessageExtension as extension methods.)
  12. SnmpMessageExtension.GetSocket(EndPoint) (Resolution: Moved to EndPointExtension as extension method.)
  13. InformRequestMessage.GenerateResponse() (Resolution: Use the pipeline.)
  14. TrapV1Message.Send(*) (Resolution: Moved to SnmpMessageExtension as extension method.)
  15. TrapV2Message.Send(*) (Resolution: Moved to SnmpMessageExtension as extension method.)
  16. IAuthenticationProvider.ComputeHash, VerifyHash. (Resolution: Moved to AuthenticationProviderExtension class as extension methods.)
  17. One of User constructor. (Resolution: Use the remaining constructor.)

Obsolete Methods (Breaking)

Some constructors of GetNextRequestPdu, GetRequestPdu, SetRequestPdu. (Resolution: Use the other constructors.)

HoneyCell Refresh release (6.1.1)

30 Oct 06:50
Compare
Choose a tag to compare

This is a bug fix release.

  • Bug 7213 is resolved: Browser notification panel throws ArgumentNullException.
  • Bug 7217 is resolved: Agent-side bug in ByteTool.GetRawBytes.

HoneyCell release (6.0)

30 Oct 06:51
Compare
Choose a tag to compare
  1. Ubuntu 10.10 is officially supported.
  2. Changed all ISnmpMessage derived classes ToByte implementation.
  3. Added a new exception, PortInUseException.
  4. Reimplemented GetBulkMessageHandler who now fully supports GET BULK messages.
  5. Enhanced the pipeline to better match SNMP RFC documents (1157 and 3416).
  6. Fixed WSAECONNRESET socket exception handling.
  7. Fixed a browser bug (wrong tag generated for v3 profile).
  8. Fixed IP.Equals bug.
  9. Merged changes from DockPanel Suite 2.4.
  10. Closed work item 7189. SNMP v3 TRAP message support is added and tested.
  11. Closed work item 6826. SNMP v3 INFORM is supported.

Core assemblies changes from 5.2:

In this release the core classes and namespaces are heavily updated.

New Public Types

The following are new,

  • ResponsePdu: replace GetResponsePdu.
  • ResponseMessage: replace GetResponseMessage.
  • IListenerBinding: interface for ListenerBinding.
  • PortInUseException: an exception raised when a binding is already in use.

Classes under Lextm.SharpSnmpLib.Objects and Lextm.SharpSnmpLib.Pipeline are actually moved from Lextm.SharpSnmpLib.Agent.

New Public Namespaces

Only two are new,

  • Lextm.SharpSnmpLib.Objects: sample SNMP objects for snmpd.
  • Lextm.SharpSnmpLib.Pipeline: SNMP pipeline components.

Changed Interfaces (Breaking)

The following interfaces are changed,

  1. ISnmpMessage
  2. IAuthenticationProvider
  3. IPrivacyProvider

Renamed Classes (Breaking)

  1. Helper: renamed to SnmpMessageExtension.
  2. SnmpDemon: renamed to SnmpEngine.
  3. DemonObjects: renamed to EngineGroup.

Obsolete and Deleted Classes (Breaking)

  1. ProviderPair: removed. Please use IPrivacyProvider derived classes directly.
  2. GetResponseMessage: Please use ResponseMessage instead.
  3. GetResponsePdu: Please use ResponsePdu instead.
  4. Manager: Please use Messenger instead.
  5. Manager*ListenerAdapter: Please use classes under Lextm.SharpSnmpLib.Pipeline to construct a pipeline to handle incoming messages. Browser.exe is the sample.

Modified Methods (Breaking)

  1. ByteTool.Convert: due to the new implementation, you must pass in byte[] instead of IEnumerable.
  2. OperationException.ToString: the implementation is changed.
  3. Discovery.Discovery: add one more parameter. You can also use Messenger.NextDiscovery to construct the object.
  4. ISnmpMessage derived classes: ProviderPair is replaced by IPrivacyProvider in constructors.

Obsolete Methods (Breaking)

  1. OctetString.ToDateString: Will provide a better conversion in future release.
  2. InformRequestMessage.GenerateResponse: Please use classes under Lextm.SharpSnmpLib.Pipeline to construct a pipeline to handle incoming messages. Browser.exe is the sample.
  3. Messenger.GetTable: no longer supports this method. It can still be used to query simple tables, but for complex tables, you need to implement your own table retrieval algorithm.
  4. UserRegistry.Default: Please use new to construct objects.
  5. Levels.None: removed. Please use 0 instead.

CatPaw Refresh release (5.2)

30 Oct 06:51
Compare
Choose a tag to compare

Bug fix release.

Only CF 3.5 assembly is heavily changed compared to 5.0. All other assemblies are identical.

CatPaw release (5.0)

30 Oct 06:52
Compare
Choose a tag to compare

CF build is based on CodePlex Change Set 47068.

Changes from 4.0:

  1. The Agent and the Browser now support SNMP v3.
  2. The Agent, the Browser and the Compiler supports both .NET/Windows and Mono/openSUSE now.
  3. VB.NET samples are added.

General

You can see a lot of highlighted areas, because

  1. We migrated to Visual Studio 2010, so many generated code has been changed.
  2. We changed a lot of GUI code in order to support Mono/openSUSE.
  3. Agent side SNMP v3 support introduces many underlying changes in the Library.
  4. Browser side SNMP v3 support introduces a few changes in itself.

New Core Public Types

Only three new types are introduced in 5.0,

  • MalformedMessage: It is used to represent an SNMP v3 message received by the listener, which cannot be decrypted successfully due to several reasons.
  • DecryptionException: An exception raised when an SNMP v3 message cannot be decrypted successfully.
  • ListenerBinding: We introduce this class, so you can ask a Listener class to monitor on several IP address:port number bindings.

New Assemblies

Only one assembly is added to our binary release package. That is snmptranslate, a utility to show how to use compiled MIB documents to do OID translation.

New Public Types

We have a few new types here except for the three mentioned above,

  • OutputPanelAppender: This is a custom log4net appender used in the Browser and the Compiler. It logs all necessary information into the output panel.
  • RollingFileAppender: This is a custom log4net rolling file appender that outputs log file names in IIS similar pattern.

Breaking Changes

Removed types are,

  • BitString
  • Bool
  • GeneralString
  • Real
    Moved types are,
  • ISnmpMessage
  • IEntity
  • IDefinition
  • IModule
  • IObjectRegistry
  • IObjectTree
  • SearchResult
  • DefinitionType
  • IConstruct

SquareRoot release (4.0)

30 Oct 06:52
Compare
Choose a tag to compare
  1. #SNMP MIB Browser is updated to better work with snmpd.
  2. Issue 5777 is resolved.
  3. Issue 5020 is resolved.
  4. #SNMP Agent project (snmpd) is significantly improved, which is an SNMP agent reference implementation that
  • supports logging.
  • supports several SNMP objects.
  • uses a pipeline to handle incoming requests.
  • handles SNMP v1/v2c requests.

Changes from 3.1:

General

We changed a lot of code, which shows the suite evolution is still fast. (The Library is stable now, but the Browser, Compiler and Agent are moving fast.)

New Core Public Types

Only one new types is introduced in 4.0. That is the SearchResult class. You will use it more and more in the future, as we recommend IObjectTree.Search.

New Assemblies

Only one assembly is added to our binary release package. That is snmpd.exe, our SNMP agent reference design.

New Public Types

We have a few new types here except for SearchResult,

  • WatchDog: This is a class that works as a hardware watch dog. The Browser utilizes it to monitor the module folder for changes. Without it, changes occurring in a short period of time cause a sequence of UI updates. It can be extended to provide more functionality. (Note that this class is released under MIT license and distributed in a standalone source file.)
  • AccessFailureException: This is an exception type used snmpd for read-only or write-only SNMP objects.

New Public Namespaces

Two namespaces are added,

  1. Lextm.Common: This namespace currently only contains WatchDog class.
  2. Lextm.SharpSnmpLib.Agent: This namespace contains all agent side relevant classes, such as SnmpApplication, SnmpContext and so on.

Trident Refresh release (3.1)

30 Oct 06:53
Compare
Choose a tag to compare

This is a bug fix release.

  • SNMP v3 support added to the library and the command line utilities.
  • Message classes interface enhanced.
  • Classes and namespaces re-organized.
  • Work item 4988 is resolved. This issue can lead to memory leak, so all 3.0 users need to migrate to 3.1 as soon as possible.
  • snmpset tool is enhanced. Now it supports most argument the Net-SNMP alternative uses.
  • snmpwalk tool now supports "mode" switch.
  • SharpSnmpLib.Optional.dll is added. An experimental AES privacy is added. I may port more such providers from SNMP#NET in the future.
  • Message factory parser is enhanced. Bytes that cannot be parsed as SNMP messages will be thrown out in SharpMessageFactoryException.
  • StringUtility.GetAlternativeTextualForm is finally added. It can be used to generate strings such as "iso.org.dod.internet.mgmt.mib-2.system" which is asked by many #SNMP users.

Trident release (3.0)

30 Oct 06:53
Compare
Choose a tag to compare

This is the first release that starts to support SNMP v3.

  1. SNMP v3 support added to the library and the command line utilities.
  2. *Message classes interface enhanced.
  3. Classes and namespaces re-organized.