void PipeTcp(IClient client, IClient relayClient, IShadowsocksStreamCipher cipher, CancellationToken cancellationToken) { DefaultPipe pipe = new DefaultPipe(client, relayClient, Defaults.ReceiveBufferSize, _logger); PipeFilter filter = new Cipher.CipherTcpFilter(relayClient, cipher, _logger); pipe.ApplyFilter(filter); pipe.OnBroken += this.Pipe_OnBroken; lock (_pipesReadWriteLock) { this._pipes.Add(pipe); } pipe.Pipe(); }
void PipeUdp(IClient client, IClient relayClient, IShadowsocksStreamCipher cipher, CancellationToken cancellationToken) { //authentication //TODO udp assoc DefaultPipe pipe = new DefaultPipe(relayClient, client, Defaults.ReceiveBufferSize, _logger); PipeFilter filter = new Cipher.CipherUdpFilter(relayClient, cipher, _logger); PipeFilter filter2 = new LocalUdpRelayPackingFilter(relayClient, _logger); pipe.ApplyFilter(filter) .ApplyFilter(filter2); pipe.OnBroken += this.Pipe_OnBroken; lock (_pipesReadWriteLock) { this._pipes.Add(pipe); } pipe.Pipe(); }
public StreamCipherUdpFilter(IClient udpClient, IShadowsocksStreamCipher cipher, ILogger logger = null) : base(udpClient, 10, logger) { _aead = Throw.IfNull(() => cipher); }
public TcpCipherFilter(IShadowsocksStreamCipher cipher, ILogger logger = null) : base(ClientFilterCategory.Cipher, 0, logger) { _cipher = Throw.IfNull(() => cipher); }
public TcpCipherFilter(IClient tcpClient, IShadowsocksStreamCipher cipher, ILogger logger = null) : base(tcpClient, ClientFilterCategory.Cipher, 0) { _cipher = Throw.IfNull(() => cipher); _logger = logger; }
public CipherTcpFilter(IClient tcpClient, IShadowsocksStreamCipher cipher, ILogger logger = null) : base(tcpClient, 10, logger) { _cipher = Throw.IfNull(() => cipher); }