SharpCifs.Smb.ServerMessageBlock.Encode C# (CSharp) Method

Encode() private method

private Encode ( byte dst, int dstIndex ) : int
dst byte
dstIndex int
return int
		internal virtual int Encode(byte[] dst, int dstIndex)
		{
			int start = HeaderStart = dstIndex;
			dstIndex += WriteHeaderWireFormat(dst, dstIndex);
			WordCount = WriteParameterWordsWireFormat(dst, dstIndex + 1);
			dst[dstIndex++] = unchecked((byte)((WordCount / 2) & 0xFF));
			dstIndex += WordCount;
			WordCount /= 2;
			ByteCount = WriteBytesWireFormat(dst, dstIndex + 2);
			dst[dstIndex++] = unchecked((byte)(ByteCount & 0xFF));
			dst[dstIndex++] = unchecked((byte)((ByteCount >> 8) & 0xFF));
			dstIndex += ByteCount;
			Length = dstIndex - start;
			if (Digest != null)
			{
				Digest.Sign(dst, HeaderStart, Length, this, Response);
			}
			return Length;
		}

Usage Example

Example #1
0
 /// <exception cref="System.IO.IOException"></exception>
 protected internal override void DoSend(ServerMessageBlock request)
 {
     lock (Buf)
     {
         ServerMessageBlock smb = request;
         int n = smb.Encode(Buf, 4);
         Encdec.Enc_uint32be(n & 0xFFFF, Buf, 0);
         if (Log.Level >= 4)
         {
             do
             {
                 Log.WriteLine(smb);
             }while (smb is AndXServerMessageBlock &&
                     (smb = ((AndXServerMessageBlock)smb).Andx) != null);
             if (Log.Level >= 6)
             {
                 Hexdump.ToHexdump(Log, Buf, 4, n);
             }
         }
         Out.Write(Buf, 0, 4 + n);
     }
 }