Exemplo n.º 1
0
        public override byte[] ToByteArray()
        {
            var bytes  = this.SerializeCommonFields();
            var qBytes = QNameSerializer.SerializeQName(this.CName);

            bytes.AppendIntAs2Bytes(qBytes.Count);
            bytes.AddRange(qBytes);

            return(bytes.ToArray());
        }
Exemplo n.º 2
0
        public override byte[] ToByteArray()
        {
            var bytes      = this.SerializeCommonFields();
            var dnameBytes = QNameSerializer.SerializeQName(this.ExchangeDName);
            var numBytes   = dnameBytes.Count + 2;

            bytes.AppendIntAs2Bytes(numBytes);
            bytes.AppendIntAs2Bytes(this.Preference);
            bytes.AddRange(dnameBytes);

            return(bytes.ToArray());
        }
Exemplo n.º 3
0
        public byte[] SerializeQuestion(Question q)
        {
            if (q == null)
            {
                return(null);
            }

            var wordBytes = QNameSerializer.SerializeQName(q.QName);

            wordBytes.AppendIntAs2Bytes((int)q.QType + 1);
            wordBytes.AppendIntAs2Bytes((int)q.QClass + 1);

            return(wordBytes.ToArray());
        }
Exemplo n.º 4
0
        protected List <byte> SerializeCommonFields()
        {
            var bytes      = new List <byte>();
            var qNameBytes = QNameSerializer.SerializeQName(this.Name);

            bytes.AddRange(qNameBytes);

            int rrTypeNum = ((int)this.GetRecordType()) + 1;

            bytes.AppendIntAs2Bytes(rrTypeNum);

            var rrClassNum = ((int)this.GetRecordClass()) + 1;

            bytes.AppendIntAs2Bytes(rrClassNum);

            bytes.AppendIntAs4Bytes(this.TimeToLive);
            return(bytes);
        }
Exemplo n.º 5
0
        public override byte[] ToByteArray()
        {
            var bytes      = this.SerializeCommonFields();
            var mnameBytes = QNameSerializer.SerializeQName(this.MName);
            var rnameBytes = QNameSerializer.SerializeQName(this.RName);

            var length = mnameBytes.Count + rnameBytes.Count + 20;

            bytes.AppendIntAs2Bytes(length);

            bytes.AddRange(mnameBytes);
            bytes.AddRange(rnameBytes);
            bytes.AppendIntAs4Bytes((int)this.Serial);
            bytes.AppendIntAs4Bytes(this.RefreshInterval);
            bytes.AppendIntAs4Bytes(this.RetryInterval);
            bytes.AppendIntAs4Bytes(this.ExpireInterval);
            bytes.AppendIntAs4Bytes((int)this.Minimum);

            return(bytes.ToArray());
        }