MailKit.Security.Ntlm.TargetInfo.Decode C# (CSharp) Method

Decode() public method

public Decode ( byte buffer, int startIndex, int length, bool unicode ) : void
buffer byte
startIndex int
length int
unicode bool
return void
		void Decode (byte[] buffer, int startIndex, int length, bool unicode)
		{
			int index = startIndex;

			do {
				var type = BitConverterLE.ToInt16 (buffer, index);

				index += 2;

				switch (type) {
				case 0: index = startIndex + length; break; // a 'type' of 0 terminates the TargetInfo
				case 1: ServerName = DecodeString (buffer, ref index, unicode); break;
				case 2: DomainName = DecodeString (buffer, ref index, unicode); break;
				case 3: DnsServerName = DecodeString (buffer, ref index, unicode); break;
				case 4: DnsDomainName = DecodeString (buffer, ref index, unicode); break;
				case 5: DnsTreeName = DecodeString (buffer, ref index, unicode); break;
				case 6: Flags = DecodeFlags (buffer, ref index); break;
				case 7: Timestamp = DecodeTimestamp (buffer, ref index); break;
				case 9: TargetName = DecodeString (buffer, ref index, unicode); break;
				default: index += 2 + BitConverterLE.ToInt16 (buffer, index); break;
				}
			} while (index < startIndex + length);
		}