示例#1
0
        /// <summary>
        /// Creates a <see cref="SetRequestPdu"/> instance with all contents.
        /// </summary>
        /// <param name="requestId">The request id.</param>
        /// <param name="variables">Variables</param>
        public SetRequestPdu(int requestId, IList <Variable> variables)
        {
            if (variables == null)
            {
                throw new ArgumentNullException("variables");
            }

            RequestId       = new Integer32(requestId);
            ErrorStatus     = Integer32.Zero;
            ErrorIndex      = Integer32.Zero;
            Variables       = variables;
            _varbindSection = Variable.Transform(Variables);
        }
示例#2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Header"/> class.
        /// </summary>
        /// <param name="messageId">The message id.</param>
        /// <param name="maxMessageSize">Size of the max message.</param>
        /// <param name="securityLevel">The security level.</param>
        /// <remarks>If you want an empty header, please use <see cref="Empty"/>.</remarks>
        public Header(Integer32 messageId, Integer32 maxMessageSize, Levels securityLevel)
        {
            if (maxMessageSize == null)
            {
                throw new ArgumentNullException("maxMessageSize");
            }

            _messageId     = messageId;
            _maxSize       = maxMessageSize;
            SecurityLevel  = securityLevel;
            _flags         = new OctetString(SecurityLevel);
            _securityModel = DefaultSecurityModel;
        }
示例#3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SecurityParameters"/> class.
        /// </summary>
        /// <param name="engineId">The engine ID.</param>
        /// <param name="engineBoots">The engine boots.</param>
        /// <param name="engineTime">The engine time.</param>
        /// <param name="userName">The user name.</param>
        /// <param name="authenticationParameters">The authentication parameters.</param>
        /// <param name="privacyParameters">The privacy parameters.</param>
        /// <remarks>Only <paramref name="userName"/> cannot be null.</remarks>
        public SecurityParameters(OctetString engineId, Integer32 engineBoots, Integer32 engineTime, OctetString userName, OctetString authenticationParameters, OctetString privacyParameters)
        {
            if (userName == null)
            {
                throw new ArgumentNullException("userName");
            }

            EngineId    = engineId;
            EngineBoots = engineBoots;
            EngineTime  = engineTime;
            UserName    = userName;
            AuthenticationParameters = authenticationParameters;
            PrivacyParameters        = privacyParameters;
        }
示例#4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="TrapV1Pdu"/> class.
        /// </summary>
        /// <param name="stream">The stream.</param>
        public TrapV1Pdu(EndPoint sourceEndPoint, Stream stream)
        {
            if (stream == null)
            {
                throw new ArgumentNullException("stream");
            }

            Enterprise      = (ObjectIdentifier)DataFactory.CreateSnmpData(sourceEndPoint, stream);
            AgentAddress    = (IP)DataFactory.CreateSnmpData(sourceEndPoint, stream);
            _generic        = (Integer32)DataFactory.CreateSnmpData(sourceEndPoint, stream);
            _specific       = (Integer32)DataFactory.CreateSnmpData(sourceEndPoint, stream);
            TimeStamp       = (TimeTicks)DataFactory.CreateSnmpData(sourceEndPoint, stream);
            _varbindSection = (Sequence)DataFactory.CreateSnmpData(sourceEndPoint, stream);
            Variables       = Variable.Transform(_varbindSection);
        }
示例#5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Header"/> class.
        /// </summary>
        /// <param name="data">The data.</param>
        public Header(ISnmpData data)
        {
            if (data == null)
            {
                throw new ArgumentNullException("data");
            }

            var container = (Sequence)data;

            _messageId     = (Integer32)container[0];
            _maxSize       = (Integer32)container[1];
            _flags         = (OctetString)container[2];
            SecurityLevel  = _flags.ToLevels();
            _securityModel = (Integer32)container[3];
        }
示例#6
0
        /// <summary>
        /// Creates a <see cref="TrapV1Pdu"/> instance with PDU elements.
        /// </summary>
        /// <param name="enterprise">Enterprise</param>
        /// <param name="agent">Agent address</param>
        /// <param name="generic">Generic trap type</param>
        /// <param name="specific">Specific trap type</param>
        /// <param name="timestamp">Time stamp</param>
        /// <param name="variables">Variable binds</param>
        public TrapV1Pdu(ObjectIdentifier enterprise, IP agent, Integer32 generic, Integer32 specific, TimeTicks timestamp, IList <Variable> variables)
        {
            if (enterprise == null)
            {
                throw new ArgumentNullException("enterprise");
            }

            if (agent == null)
            {
                throw new ArgumentNullException("agent");
            }

            if (generic == null)
            {
                throw new ArgumentNullException("generic");
            }

            if (specific == null)
            {
                throw new ArgumentNullException("specific");
            }

            if (timestamp == null)
            {
                throw new ArgumentNullException("timestamp");
            }

            if (variables == null)
            {
                throw new ArgumentNullException("variables");
            }

            Enterprise      = enterprise;
            AgentAddress    = agent;
            _generic        = generic;
            _specific       = specific;
            TimeStamp       = timestamp;
            _varbindSection = Variable.Transform(variables);
            Variables       = variables;
        }
示例#7
0
        //-----------------------------------------------------------------------------------
        public static ISnmpData CreateSnmpDataFromStringUnsafe(SnmpType type, string strValeur)
        {
            ISnmpData data = null;

            switch (type)
            {
            case SnmpType.EndMarker:
                //Non geré
                break;

            case SnmpType.Integer32:
                data = new Integer32(Int32.Parse(strValeur));
                break;

            case SnmpType.OctetString:
                data = new OctetString(strValeur);
                break;

            case SnmpType.Null:
                data = new Null();
                break;

            case SnmpType.ObjectIdentifier:
                data = new ObjectIdentifier(strValeur);
                break;

            case SnmpType.Sequence:
                //Non geré
                break;

            case SnmpType.IPAddress:
                data = new IP(IPAddress.Parse(strValeur));
                break;

            case SnmpType.Counter32:
                data = new Counter32(uint.Parse(strValeur));
                break;

            case SnmpType.Gauge32:
                data = new Gauge32(uint.Parse(strValeur));
                break;

            case SnmpType.TimeTicks:
                data = new TimeTicks(uint.Parse(strValeur));
                break;

            case SnmpType.Opaque:
                //Non geré
                break;

            case SnmpType.NetAddress:
                //Non geré
                break;

            case SnmpType.Counter64:
                data = new Counter64(ulong.Parse(strValeur));
                break;

            case SnmpType.UInt32:
                //Non geré
                break;

            case SnmpType.NoSuchObject:
                //Non geré
                break;

            case SnmpType.NoSuchInstance:
                //Non geré
                break;

            case SnmpType.EndOfMibView:
                //Non geré
                break;

            case SnmpType.GetRequestPdu:
                //Non geré
                break;

            case SnmpType.GetNextRequestPdu:
                //Non geré
                break;

            case SnmpType.ResponsePdu:
                //Non geré
                break;

            case SnmpType.SetRequestPdu:
                //Non geré
                break;

            case SnmpType.TrapV1Pdu:
                //Non geré
                break;

            case SnmpType.GetBulkRequestPdu:
                //Non geré
                break;

            case SnmpType.InformRequestPdu:
                //Non geré
                break;

            case SnmpType.TrapV2Pdu:
                //Non geré
                break;

            case SnmpType.ReportPdu:
                //Non geré
                break;

            case SnmpType.Unknown:
                //Non geré
                break;

            default:
                break;
            }

            return(data);
        }
示例#8
0
 public TrapV1Pdu(uint[] enterprise, IP agent, Integer32 generic, Integer32 specific, TimeTicks timestamp, IList <Variable> variables)
     : this(new ObjectIdentifier(enterprise), agent, generic, specific, timestamp, variables)
 {
 }