Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Dart.SNMP v4.2.0 throws NotImplementedException under provided scenario. Is this user error or library error?
- using System;
- using System.Threading;
- using Dart.Snmp;
- using System.Diagnostics;
- namespace ConsoleApplication1
- {
- class Program
- {
- ManualResetEvent _snmpCompleteEvent = new ManualResetEvent(false);
- const string IP = "XXX.XXX.X.XX";
- const string USERNAME = "username123";
- static void Main(string[] args)
- {
- new Program().Run();
- }
- private void Run()
- {
- Manager SnmpMgr = new Manager();
- _snmpCompleteEvent.Reset();
- SnmpMgr.Start(SendBadSnmp3RequestWorker, null);
- _snmpCompleteEvent.WaitOne();
- _snmpCompleteEvent.Reset();
- SnmpMgr.Start(SendGoodSnmp3RequestWorker, null);
- _snmpCompleteEvent.WaitOne();
- }
- private void SendBadSnmp3RequestWorker(ManagerSlave slave, object state)
- {
- RequestMessage requestMessage = CreateGetRequestMessage(useValidSecurity: false);
- ResponseMessage responseMessage = slave.GetResponse(requestMessage, IP);
- Debug.Assert(responseMessage.ErrorStatus == ErrorStatus.AuthorizationError, "This should have been an authorization error");
- _snmpCompleteEvent.Set();
- }
- private void SendGoodSnmp3RequestWorker(ManagerSlave slave, object state)
- {
- RequestMessage requestMessage = CreateGetRequestMessage(useValidSecurity: true);
- try
- {
- ResponseMessage responseMessage = slave.GetResponse(requestMessage, IP);
- }
- catch (NotImplementedException exception)
- {
- //Exception is encountered, but why?
- _snmpCompleteEvent.Set();
- throw;
- }
- }
- private RequestMessage CreateGetRequestMessage(bool useValidSecurity)
- {
- const string sysName = "1.3.6.1.2.1.1.5";
- RequestMessage requestMessage = new GetMessage();
- requestMessage.Version = SnmpVersion.Three;
- requestMessage.Variables.Clear();
- requestMessage.Variables.Add(new Variable(sysName));
- if (useValidSecurity)
- SetValidAuthorizationSecurity(requestMessage);
- else
- SetInvalidAuthorizationSecurity(requestMessage);
- return requestMessage;
- }
- private void SetInvalidAuthorizationSecurity(RequestMessage requestMessage)
- {
- requestMessage.Security = new Security
- {
- Username = USERNAME,
- AuthenticationProtocol = AuthenticationProtocol.None,
- AuthenticationPassword = string.Empty,
- PrivacyProtocol = PrivacyProtocol.None,
- PrivacyPassword = string.Empty
- };
- }
- private void SetValidAuthorizationSecurity(RequestMessage requestMessage)
- {
- requestMessage.Security = new Security
- {
- Username = USERNAME,
- AuthenticationProtocol = AuthenticationProtocol.Sha,
- AuthenticationPassword = USERNAME,
- PrivacyProtocol = PrivacyProtocol.Des,
- PrivacyPassword = USERNAME
- };
- }
- }
- }
Add Comment
Please, Sign In to add comment