aboutsummaryrefslogtreecommitdiff
path: root/Emby.Common.Implementations/IO/SharpCifs/Smb/Trans2GetDfsReferralResponse.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Common.Implementations/IO/SharpCifs/Smb/Trans2GetDfsReferralResponse.cs')
-rw-r--r--Emby.Common.Implementations/IO/SharpCifs/Smb/Trans2GetDfsReferralResponse.cs336
1 files changed, 180 insertions, 156 deletions
diff --git a/Emby.Common.Implementations/IO/SharpCifs/Smb/Trans2GetDfsReferralResponse.cs b/Emby.Common.Implementations/IO/SharpCifs/Smb/Trans2GetDfsReferralResponse.cs
index 5fa4a795d..a0c94e23b 100644
--- a/Emby.Common.Implementations/IO/SharpCifs/Smb/Trans2GetDfsReferralResponse.cs
+++ b/Emby.Common.Implementations/IO/SharpCifs/Smb/Trans2GetDfsReferralResponse.cs
@@ -19,161 +19,185 @@ using SharpCifs.Util.Sharpen;
namespace SharpCifs.Smb
{
- internal class Trans2GetDfsReferralResponse : SmbComTransactionResponse
- {
- internal class Referral
- {
- private int _version;
-
- private int _size;
-
- private int _serverType;
-
- private int _flags;
-
- private int _proximity;
-
- private int _pathOffset;
-
- private int _altPathOffset;
-
- private int _nodeOffset;
-
- private string _altPath;
-
- internal int Ttl;
-
- internal string Path;
-
- internal string Node;
-
- 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;
- }
-
- public override string ToString()
- {
- return "Referral[" + "version=" + _version + ",size=" + _size
- + ",serverType=" + _serverType + ",flags=" + _flags + ",proximity=" + _proximity + ",ttl=" + Ttl + ",pathOffset=" + _pathOffset + ",altPathOffset="
- + _altPathOffset + ",nodeOffset=" + _nodeOffset + ",path=" + Path
- + ",altPath=" + _altPath + ",node=" + Node + "]";
- }
-
- internal Referral(Trans2GetDfsReferralResponse enclosing)
- {
- this._enclosing = enclosing;
- }
-
- private readonly Trans2GetDfsReferralResponse _enclosing;
- }
-
- internal int PathConsumed;
-
- internal int NumReferrals;
-
- internal int flags;
-
- internal Referral[] Referrals;
-
- public Trans2GetDfsReferralResponse()
- {
- SubCommand = Smb.SmbComTransaction.Trans2GetDfsReferral;
- }
-
- internal override int WriteSetupWireFormat(byte[] dst, int dstIndex)
- {
- return 0;
- }
-
- internal override int WriteParametersWireFormat(byte[] dst, int dstIndex)
- {
- return 0;
- }
-
- internal override int WriteDataWireFormat(byte[] dst, int dstIndex)
- {
- return 0;
- }
-
- internal override int ReadSetupWireFormat(byte[] buffer, int bufferIndex, int len
- )
- {
- return 0;
- }
-
- internal override int ReadParametersWireFormat(byte[] buffer, int bufferIndex, int
- len)
- {
- return 0;
- }
-
- internal override int ReadDataWireFormat(byte[] buffer, int bufferIndex, int len)
- {
- int start = bufferIndex;
- PathConsumed = ReadInt2(buffer, bufferIndex);
- bufferIndex += 2;
+ internal class Trans2GetDfsReferralResponse : SmbComTransactionResponse
+ {
+ internal class Referral
+ {
+ private int _version;
+
+ private int _size;
+
+ private int _serverType;
+
+ private int _flags;
+
+ private int _proximity;
+
+ private int _pathOffset;
+
+ private int _altPathOffset;
+
+ private int _nodeOffset;
+
+ private string _altPath;
+
+ internal int Ttl;
+
+ internal string Path;
+
+ internal string Node;
+
+ 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;
+ }
+
+ public override string ToString()
+ {
+ return "Referral["
+ + "version=" + _version
+ + ",size=" + _size
+ + ",serverType=" + _serverType
+ + ",flags=" + _flags
+ + ",proximity=" + _proximity
+ + ",ttl=" + Ttl
+ + ",pathOffset=" + _pathOffset
+ + ",altPathOffset=" + _altPathOffset
+ + ",nodeOffset=" + _nodeOffset
+ + ",path=" + Path
+ + ",altPath=" + _altPath
+ + ",node=" + Node + "]";
+ }
+
+ internal Referral(Trans2GetDfsReferralResponse enclosing)
+ {
+ this._enclosing = enclosing;
+ }
+
+ private readonly Trans2GetDfsReferralResponse _enclosing;
+ }
+
+ internal int PathConsumed;
+
+ internal int NumReferrals;
+
+ internal int flags;
+
+ internal Referral[] Referrals;
+
+ public Trans2GetDfsReferralResponse()
+ {
+ SubCommand = Smb.SmbComTransaction.Trans2GetDfsReferral;
+ }
+
+ internal override int WriteSetupWireFormat(byte[] dst, int dstIndex)
+ {
+ return 0;
+ }
+
+ internal override int WriteParametersWireFormat(byte[] dst, int dstIndex)
+ {
+ return 0;
+ }
+
+ internal override int WriteDataWireFormat(byte[] dst, int dstIndex)
+ {
+ return 0;
+ }
+
+ internal override int ReadSetupWireFormat(byte[] buffer, int bufferIndex, int len)
+ {
+ return 0;
+ }
+
+ internal override int ReadParametersWireFormat(byte[] buffer,
+ int bufferIndex,
+ int len)
+ {
+ return 0;
+ }
+
+ internal override int ReadDataWireFormat(byte[] buffer, int bufferIndex, int len)
+ {
+ int start = bufferIndex;
+ PathConsumed = ReadInt2(buffer, bufferIndex);
+ bufferIndex += 2;
if ((Flags2 & SmbConstants.Flags2Unicode) != 0)
- {
- PathConsumed /= 2;
- }
- NumReferrals = ReadInt2(buffer, bufferIndex);
- bufferIndex += 2;
- flags = ReadInt2(buffer, bufferIndex);
- bufferIndex += 4;
- Referrals = new Referral[NumReferrals];
- for (int ri = 0; ri < NumReferrals; ri++)
- {
- Referrals[ri] = new Referral(this);
- bufferIndex += Referrals[ri].ReadWireFormat(buffer, bufferIndex, len);
- }
- return bufferIndex - start;
- }
-
- public override string ToString()
- {
- return "Trans2GetDfsReferralResponse[" + base.ToString() + ",pathConsumed="
- + PathConsumed + ",numReferrals=" + NumReferrals + ",flags=" + flags + "]";
- }
- }
+ {
+ PathConsumed /= 2;
+ }
+ NumReferrals = ReadInt2(buffer, bufferIndex);
+ bufferIndex += 2;
+ flags = ReadInt2(buffer, bufferIndex);
+ bufferIndex += 4;
+ Referrals = new Referral[NumReferrals];
+ for (int ri = 0; ri < NumReferrals; ri++)
+ {
+ Referrals[ri] = new Referral(this);
+ bufferIndex += Referrals[ri].ReadWireFormat(buffer, bufferIndex, len);
+ }
+ return bufferIndex - start;
+ }
+
+ public override string ToString()
+ {
+ return "Trans2GetDfsReferralResponse["
+ + base.ToString()
+ + ",pathConsumed=" + PathConsumed
+ + ",numReferrals=" + NumReferrals
+ + ",flags=" + flags + "]";
+ }
+ }
}