예제 #1
0
        public void ReadFromBuffer(STUNAttr attr)
        {
            var buffer = attr.data;

            buffer.GetByte();
            family = (AddressFamily)buffer.GetByte();

            // XOR
            port = buffer.GetUShort();
            if (AddressFamily.IPv4 == family)
            {
                ipv4.Read(ref buffer);
            }
            else
            {
                ipv6.Read(ref buffer);
            }

            port ^= attr.stunMessage.GetUShort(4);
            if (AddressFamily.IPv4 == family)
            {
                ipv4.bits ^= attr.stunMessage.GetUInt(4);
            }
            else
            {
                ipv6.msb ^= attr.stunMessage.GetULong(4);
                ipv6.lsb ^= attr.stunMessage.GetULong(12);
            }
        }
예제 #2
0
        public void ReadFromBuffer(STUNAttr attr)
        {
            var buffer = attr.data;

            crc = buffer.GetUInt() ^ FINGERPRINT_XOR;

            copiedBuffer         = attr.stunMessage;
            copiedBuffer.Length -= 8;
        }
예제 #3
0
        public void ReadFromBuffer(STUNAttr attr)
        {
            var buffer = attr.data;

            buffer.GetByte();
            family = (AddressFamily)buffer.GetByte();
            port   = buffer.GetUShort();

            ip.Read(ref buffer, family == AddressFamily.IPv4);
        }
예제 #4
0
        public void ReadFromBuffer(STUNAttr attr)
        {
            var buffer = attr.data;

            buffer.GetUShort();
            byte errorClass  = buffer.GetByte();
            byte errorNumber = buffer.GetByte();

            code   = (ushort)(errorClass * 100 + errorNumber % 100);
            reason = Encoding.UTF8.GetString(buffer.data, buffer.absPosition, buffer.Length - 4);
        }
예제 #5
0
        public void ReadFromBuffer(STUNAttr attr)
        {
            var buffer = attr.data;

            buffer.GetByte();
            family = (AddressFamily)buffer.GetByte();
            port   = buffer.GetUShort();

            if (AddressFamily.IPv4 == family)
            {
                ipv4.Read(ref buffer);
            }
            else
            {
                ipv6.Read(ref buffer);
            }
        }
예제 #6
0
        public void ReadFromBuffer(STUNAttr attr)
        {
            var buffer = attr.data;

            priority = buffer.GetUInt();
        }
예제 #7
0
 public STUNAttr_Priority(STUNAttr attr) : this()
 {
     ReadFromBuffer(attr);
 }
예제 #8
0
 public STUNAttr_Username(STUNAttr attr) : this()
 {
     ReadFromBuffer(attr);
 }
예제 #9
0
 public STUNAttr_Fingerprint(STUNAttr attr) : this()
 {
     ReadFromBuffer(attr);
 }
예제 #10
0
 public void ReadFromBuffer(STUNAttr attr)
 {
     throw new System.NotImplementedException();
 }
예제 #11
0
 public void ReadFromBuffer(STUNAttr attr)
 {
     // Not intended to be used this way
     this = attr;
 }
예제 #12
0
 public STUNAttr_Software(STUNAttr attr) : this()
 {
     ReadFromBuffer(attr);
 }
예제 #13
0
 public void ReadFromBuffer(STUNAttr attr)
 {
     // TO DO
     Logger.Warn("ReadFromBuffer is not implemented in STUNAttr_MessageIntegrity");
 }
예제 #14
0
 public STUNAttr_ErrorCode(STUNAttr attr) : this()
 {
     ReadFromBuffer(attr);
 }
예제 #15
0
 public STUNAttr_UseCandidate(STUNAttr attr) : this()
 {
     ReadFromBuffer(attr);
 }
예제 #16
0
 public void ReadFromBuffer(STUNAttr attr)
 {
     software = Encoding.UTF8.GetString(attr.data.data, attr.data.absPosition, Math.Min(128, attr.data.Length));
 }
예제 #17
0
        public void ReadFromBuffer(STUNAttr attr)
        {
            var buffer = attr.data;

            crc = buffer.GetUInt() ^ FINGERPRINT_XOR;
        }
예제 #18
0
 public void ReadFromBuffer(STUNAttr attr)
 {
     tieBreaker = attr.data.GetULong();
 }
예제 #19
0
 public STUNAttr_IceControlled(STUNAttr attr) : this()
 {
     ReadFromBuffer(attr);
 }
예제 #20
0
 public STUNAttr_MappedAddress(STUNAttr attr) : this()
 {
     ReadFromBuffer(attr);
 }
예제 #21
0
 public void ReadFromBuffer(STUNAttr attr)
 {
 }
예제 #22
0
 public void ReadFromBuffer(STUNAttr attr)
 {
     usernameInString = Encoding.UTF8.GetString(attr.data.data, attr.data.absPosition, Math.Min(512, attr.data.Length));
 }
예제 #23
0
파일: STUNAttr.cs 프로젝트: lulzzz/stun
 public void ReadFromBuffer(STUNAttr attr)
 {
     // Not intended to be used this way
     throw new System.NotImplementedException();
 }
예제 #24
0
 public STUNAttr_MessageIntegrity(STUNAttr attr) : this()
 {
     ReadFromBuffer(attr);
 }