SnmpSharpNet.SnmpV3Packet.BuildInformResponse C# (CSharp) Метод

BuildInformResponse() публичный статический Метод

Build SNMP RESPONSE packet for the INFORM packet class.
Parameter is not an INFORM SNMP version 3 packet class Parameter is not a SNMP version 3 packet
public static BuildInformResponse ( SnmpV3Packet informPacket ) : SnmpV3Packet
informPacket SnmpV3Packet SNMP INFORM packet
Результат SnmpV3Packet
        public static SnmpV3Packet BuildInformResponse(SnmpV3Packet informPacket)
        {
            if (informPacket.Version != SnmpVersion.Ver3)
                throw new SnmpInvalidVersionException("INFORM packet can only be parsed from an SNMP version 3 packet.");
            if (informPacket.Pdu.Type != PduType.Inform)
                throw new SnmpInvalidPduTypeException("Inform response can only be built for INFORM packets.");

            SnmpV3Packet response = new SnmpV3Packet(informPacket.ScopedPdu);
            response.MessageId = informPacket.MessageId;
            response.USM.SecurityName.Set(informPacket.USM.SecurityName);
            response.USM.EngineTime = informPacket.USM.EngineTime;
            response.USM.EngineBoots = informPacket.USM.EngineBoots;
            response.USM.EngineId.Set(informPacket.USM.EngineId);
            response.USM.Authentication = informPacket.USM.Authentication;
            if( response.USM.Authentication != AuthenticationDigests.None )
                response.USM.AuthenticationSecret.Set(informPacket.USM.AuthenticationSecret);
            else
                response.USM.AuthenticationSecret.Reset();
            response.USM.Privacy = informPacket.USM.Privacy;
            if (response.USM.Privacy != PrivacyProtocols.None)
                response.USM.PrivacySecret.Set(informPacket.USM.PrivacySecret);
            else
                response.USM.PrivacySecret.Reset();
            response.MsgFlags.Authentication = informPacket.MsgFlags.Authentication;
            response.MsgFlags.Privacy = informPacket.MsgFlags.Privacy;
            response.MsgFlags.Reportable = informPacket.MsgFlags.Reportable;
            response.ScopedPdu.ContextEngineId.Set(informPacket.ScopedPdu.ContextEngineId);
            response.ScopedPdu.ContextName.Set(informPacket.ScopedPdu.ContextName);
            response.Pdu.Type = PduType.Response;
            response.Pdu.TrapObjectID.Set(informPacket.Pdu.TrapObjectID);
            response.Pdu.TrapSysUpTime.Value = informPacket.Pdu.TrapSysUpTime.Value;
            response.Pdu.RequestId = informPacket.Pdu.RequestId;

            return response;
        }

Same methods

SnmpV3Packet::BuildInformResponse ( ) : SnmpV3Packet

Usage Example

Пример #1
0
 /// <summary>
 /// Build SNMP RESPONSE packet for the received INFORM packet.
 /// </summary>
 /// <returns>SNMP version 3 packet containing RESPONSE to the INFORM packet contained in the class instance.</returns>
 public SnmpV3Packet BuildInformResponse()
 {
     return(SnmpV3Packet.BuildInformResponse(this));
 }