Пример #1
0
        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();
        }
Пример #2
0
 public TunSocketAdapter CreateAdapter(TcpSocket socket, TunInterface tun)
 {
     return(new HttpAdapter(config.ServerHost, config.ServerPort, socket, tun));
 }
Пример #3
0
 public TunSocketAdapter CreateAdapter(TcpSocket socket, TunInterface tun)
 {
     // TODO: hash password
     throw new NotImplementedException("Trojan adapter is not implemented");
     // return new TrojanAdapter(config.ServerHost, config.ServerPort, , socket, tun);
 }
Пример #4
0
 public TunSocketAdapter CreateAdapter(TcpSocket socket, TunInterface tun)
 {
     return(new ShadowsocksAdapter(config.ServerHost, config.ServerPort, cryptorFactory.CreateCryptor(), socket, tun));
 }