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(); }
public TunSocketAdapter CreateAdapter(TcpSocket socket, TunInterface tun) { return(new HttpAdapter(config.ServerHost, config.ServerPort, socket, tun)); }
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); }
public TunSocketAdapter CreateAdapter(TcpSocket socket, TunInterface tun) { return(new ShadowsocksAdapter(config.ServerHost, config.ServerPort, cryptorFactory.CreateCryptor(), socket, tun)); }