public TorSocks5Response(RepField rep, AddrField bndAddr, PortField bndPort) { Rep = Guard.NotNull(nameof(rep), rep); BndAddr = Guard.NotNull(nameof(bndAddr), bndAddr); BndPort = Guard.NotNull(nameof(bndPort), bndPort); Ver = VerField.Socks5; Rsv = RsvField.X00; Atyp = bndAddr.Atyp; }
public TorSocks5Response(byte[] bytes) { Guard.NotNullOrEmpty(nameof(bytes), bytes); Guard.MinimumAndNotNull($"{nameof(bytes)}.{nameof(bytes.Length)}", bytes.Length, smallest: 6); Ver = new VerField(bytes[0]); Rep = new RepField(bytes[1]); Rsv = new RsvField(bytes[2]); Atyp = new AtypField(bytes[3]); BndAddr = new AddrField(bytes[4..^ 2]);
public override void FromBytes(byte[] bytes) { Guard.NotNullOrEmpty(nameof(bytes), bytes); Guard.MinimumAndNotNull($"{nameof(bytes)}.{nameof(bytes.Length)}", bytes.Length, 6); Ver = new VerField(bytes[0]); Rep = new RepField(); Rep.FromByte(bytes[1]); Rsv = new RsvField(); Rsv.FromByte(bytes[2]); Atyp = new AtypField(bytes[3]); BndAddr = new AddrField(); BndAddr.FromBytes(bytes[4..^ 2]);
public override void FromBytes(byte[] bytes) { Guard.NotNullOrEmpty(nameof(bytes), bytes); Guard.MinimumAndNotNull($"{nameof(bytes)}.{nameof(bytes.Length)}", bytes.Length, 6); Ver = new VerField(); Ver.FromByte(bytes[0]); Rep = new RepField(); Rep.FromByte(bytes[1]); Rsv = new RsvField(); Rsv.FromByte(bytes[2]); Atyp = new AtypField(); Atyp.FromByte(bytes[3]); BndAddr = new AddrField(); BndAddr.FromBytes(bytes.Skip(4).Take(bytes.Length - 4 - 2).ToArray()); BndPort = new PortField(); BndPort.FromBytes(bytes.Skip(bytes.Length - 2).ToArray()); }
public TorSocks5FailureResponseException(RepField rep) : base($"Tor SOCKS5 proxy responded with {rep.ToString()}.") { RepField = Guard.NotNull(nameof(rep), rep); }
public TorConnectCommandFailedException(RepField rep) : base($"Tor SOCKS5 proxy responded with {rep}.") { RepField = Guard.NotNull(nameof(rep), rep); }
public TorSocks5FailureResponseException(RepField rep) : base($"Tor SOCKS5 proxy responded with {rep.ToString()}.") { }