internal TunSocketAdapter(TcpSocket socket, TunInterface tun, IRemoteAdapter remoteAdapter)
        {
            Interlocked.Increment(ref OpenCount);
            var pipe = new Pipe();

            inboundReader = pipe.Reader;
            inboundWriter = pipe.Writer;
            _socket       = socket;
            _tun          = tun;

            socket.DataReceived += Socket_DataReceived;
            socket.DataSent     += Socket_DataSent;
            socket.SocketError  += Socket_SocketError;
            socket.RecvFinished += Socket_RecvFinished;

            // Resolve destination host
            var host = DnsProxyServer.TryLookup(socket.RemoteAddr);

            Destination = new Destination.Destination(host, socket.RemotePort, TransportProtocol.Tcp);

            this.remoteAdapter = remoteAdapter;
            StartPush();
            Init();
        }
Exemple #2
0
 public DirectRelay(IRemoteAdapter remoteAdapter)
 {
     this.remoteAdapter = remoteAdapter;
 }
Exemple #3
0
 public Socks5Relay(IRemoteAdapter remoteAdapter) : base(remoteAdapter)
 {
 }