internal virtual int ReadWireFormat(byte[] buffer, int bufferIndex, int len)
{
int start = bufferIndex;
_version = ReadInt2(buffer, bufferIndex);
if (_version != 3 && _version != 1)
{
throw new RuntimeException("Version " + _version + " referral not supported. Please report this to jcifs at samba dot org."
);
}
bufferIndex += 2;
_size = ReadInt2(buffer, bufferIndex);
bufferIndex += 2;
_serverType = ReadInt2(buffer, bufferIndex);
bufferIndex += 2;
_flags = ReadInt2(buffer, bufferIndex);
bufferIndex += 2;
if (_version == 3)
{
_proximity = ReadInt2(buffer, bufferIndex);
bufferIndex += 2;
Ttl = ReadInt2(buffer, bufferIndex);
bufferIndex += 2;
_pathOffset = ReadInt2(buffer, bufferIndex);
bufferIndex += 2;
_altPathOffset = ReadInt2(buffer, bufferIndex);
bufferIndex += 2;
_nodeOffset = ReadInt2(buffer, bufferIndex);
bufferIndex += 2;
Path = _enclosing.ReadString(buffer, start + _pathOffset, len, (_enclosing.Flags2 & SmbConstants.Flags2Unicode) != 0);
if (_nodeOffset > 0)
{
Node = _enclosing.ReadString(buffer, start + _nodeOffset, len, (_enclosing.Flags2 & SmbConstants.Flags2Unicode) != 0);
}
}
else
{
if (_version == 1)
{
Node = _enclosing.ReadString(buffer, bufferIndex, len, (_enclosing
.Flags2 & SmbConstants.Flags2Unicode) != 0);
}
}
return _size;
}