Exemple #1
0
        internal override void ParseAnswer(byte[] resultData, int startPosition, int length)
        {
            int endPosition = startPosition + length;

            Options = new List <EDnsOptionBase>();
            while (startPosition < endPosition)
            {
                EDnsOptionType type       = (EDnsOptionType)DnsMessageBase.ParseUShort(resultData, ref startPosition);
                ushort         dataLength = DnsMessageBase.ParseUShort(resultData, ref startPosition);

                EDnsOptionBase option;

                switch (type)
                {
                case EDnsOptionType.NsId:
                    option = new NsIdOption();
                    break;

                default:
                    option = new UnknownOption(type);
                    break;
                }

                option.ParseData(resultData, startPosition, dataLength);
                Options.Add(option);
                startPosition += dataLength;
            }
        }
Exemple #2
0
        internal override void ParseRecordData(byte[] resultData, int startPosition, int length)
        {
            int endPosition = startPosition + length;

            Options = new List <EDnsOptionBase>();
            while (startPosition < endPosition)
            {
                EDnsOptionType type       = (EDnsOptionType)DnsMessageBase.ParseUShort(resultData, ref startPosition);
                ushort         dataLength = DnsMessageBase.ParseUShort(resultData, ref startPosition);

                EDnsOptionBase option;

                switch (type)
                {
                case EDnsOptionType.LongLivedQuery:
                    option = new LongLivedQueryOption();
                    break;

                case EDnsOptionType.UpdateLease:
                    option = new UpdateLeaseOption();
                    break;

                case EDnsOptionType.NsId:
                    option = new NsIdOption();
                    break;

                case EDnsOptionType.Owner:
                    option = new OwnerOption();
                    break;

                case EDnsOptionType.DnssecAlgorithmUnderstood:
                    option = new DnssecAlgorithmUnderstoodOption();
                    break;

                case EDnsOptionType.DsHashUnderstood:
                    option = new DsHashUnderstoodOption();
                    break;

                case EDnsOptionType.Nsec3HashUnderstood:
                    option = new Nsec3HashUnderstoodOption();
                    break;

                case EDnsOptionType.ClientSubnet:
                    option = new ClientSubnetOption();
                    break;

                default:
                    option = new UnknownOption(type);
                    break;
                }

                option.ParseData(resultData, startPosition, dataLength);
                Options.Add(option);
                startPosition += dataLength;
            }
        }
Exemple #3
0
 internal EDnsOptionBase(EDnsOptionType optionType)
 {
     Type = optionType;
 }
 /// <summary>
 ///   Creates a new instance of the UnknownOption class
 /// </summary>
 /// <param name="type">Type of the option</param>
 /// <param name="data">The data of the option</param>
 public UnknownOption(EDnsOptionType type, byte[] data)
     : this(type)
 {
     Data = data;
 }
 internal UnknownOption(EDnsOptionType type)
     : base(type)
 {
 }
Exemple #6
0
 internal UnknownOption(EDnsOptionType type)
     : base(type)
 {
 }
Exemple #7
0
 /// <summary>
 ///   Creates a new instance of the UnknownOption class
 /// </summary>
 /// <param name="type"> Type of the option </param>
 public UnknownOption(EDnsOptionType type, byte[] data)
     : this(type)
 {
     Data = data;
 }
Exemple #8
0
		internal EDnsOptionBase(EDnsOptionType optionType)
		{
			Type = optionType;
		}
 public UnknownOption(EDnsOptionType type)
     : base(type)
 {
 }
Exemple #10
0
 public UnknownOption(EDnsOptionType type)
     : base(type)
 {
 }