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);
 }
Esempio n. 4
0
 public TcpCipherFilter(IShadowsocksStreamCipher cipher, ILogger logger = null)
     : base(ClientFilterCategory.Cipher, 0, logger)
 {
     _cipher = Throw.IfNull(() => cipher);
 }
Esempio n. 5
0
 public TcpCipherFilter(IClient tcpClient, IShadowsocksStreamCipher cipher, ILogger logger = null)
     : base(tcpClient, ClientFilterCategory.Cipher, 0)
 {
     _cipher = Throw.IfNull(() => cipher);
     _logger = logger;
 }
Esempio n. 6
0
 public CipherTcpFilter(IClient tcpClient, IShadowsocksStreamCipher cipher, ILogger logger = null)
     : base(tcpClient, 10, logger)
 {
     _cipher = Throw.IfNull(() => cipher);
 }