private void HandleMessage(MessageParams param) { foreach (var message in MessageFactory.ParseMessages(param.GetBytes(), 0, param.Number, Empty)) { EventHandler<AgentFoundEventArgs> handler; var code = message.TypeCode(); if (code == SnmpType.ReportPdu) { var report = (ReportMessage)message; if (report.RequestId() != _requestId) { continue; } if (report.Pdu().ErrorStatus.ToErrorCode() != ErrorCode.NoError) { continue; } handler = AgentFound; if (handler != null) { handler(this, new AgentFoundEventArgs(param.Sender, null)); } } if (code != SnmpType.ResponsePdu) { continue; } var response = (ResponseMessage)message; if (response.RequestId() != _requestId) { continue; } if (response.ErrorStatus != ErrorCode.NoError) { continue; } handler = AgentFound; if (handler != null) { handler(this, new AgentFoundEventArgs(param.Sender, response.Variables()[0])); } } }
private void HandleMessage(MessageParams param) { IList<ISnmpMessage> messages = null; try { messages = MessageFactory.ParseMessages(param.GetBytes(), 0, param.Number, _users); } catch (Exception ex) { var exception = new MessageFactoryException("Invalid message bytes found. Use tracing to analyze the bytes.", ex); exception.SetBytes(param.GetBytes()); HandleException(exception); } if (messages == null) { return; } foreach (var message in messages) { var handler = MessageReceived; if (handler != null) { handler(this, new MessageReceivedEventArgs(param.Sender, message, this)); } } }