GetAServer() public method

public GetAServer ( IStrategyCallerType type, IPEndPoint localIPEndPoint ) : Server
type IStrategyCallerType
localIPEndPoint IPEndPoint
return Shadowsocks.Model.Server
Esempio n. 1
0
        public void CreateRemote()
        {
            Server server = _controller.GetAServer(IStrategyCallerType.TCP, (IPEndPoint)_connection.RemoteEndPoint,
                                                   _destEndPoint);

            if (server == null || server.server == "")
            {
                throw new ArgumentException("No server configured");
            }

            _encryptor = EncryptorFactory.GetEncryptor(P2pLib.GetInstance().enc_method_, P2pLib.GetInstance().seckey_);

            string ip   = "";
            ushort port = 0;
            int    res  = P2pLib.GetInstance().GetRemoteNode(ref ip, ref port);

            if (res == 0)
            {
                server.server      = ip;
                server.server_port = port;
            }

            this._server = server;

            /* prepare address buffer length for AEAD */
            Logging.Debug($"_addrBufLength={_addrBufLength}, remote server: {server.server}," +
                          $" remote port: {server.server_port}, connect times: {TCPRelay.connect_times_} " +
                          $"vpn server: {P2pLib.GetInstance().str_vpn_ip_} vpn port: {P2pLib.GetInstance().vpn_port_}");
            _encryptor.AddrBufLength = _addrBufLength;
        }
Esempio n. 2
0
        public bool Handle(byte[] firstPacket, int length, Socket socket, object state)
        {
            if (socket.ProtocolType != ProtocolType.Udp)
            {
                return(false);
            }

            //?What feature ?
            if (length < 4)
            {
                return(false);
            }

            UDPState   udpState       = (UDPState)state;
            IPEndPoint remoteEndPoint = (IPEndPoint)udpState.RemoteEndPoint;

            UDPHandler handler = _cache.Get(remoteEndPoint);

            if (handler == null)
            {
                handler = new UDPHandler(socket, _controller.GetAServer(IStrategyCallerType.UDP, remoteEndPoint), remoteEndPoint);
                _cache.Add(remoteEndPoint, handler);
            }

            handler.Send(firstPacket, length);
            handler.Receive();

            return(true);
        }
Esempio n. 3
0
        public void CreateRemote()
        {
            Server server = controller.GetAServer(IStrategyCallerType.TCP, (IPEndPoint)connection.RemoteEndPoint);

            if (server == null || server.server == "")
            {
                throw new ArgumentException("No server configured");
            }
            this.encryptor = EncryptorFactory.GetEncryptor(server.method, server.password);
            this.server    = server;
        }
Esempio n. 4
0
        public void CreateRemote()
        {
            Server server = _controller.GetAServer(IStrategyCallerType.TCP, (IPEndPoint)_connection.RemoteEndPoint);

            if (server == null || server.server == "")
            {
                throw new ArgumentException("No server configured");
            }
            lock (_encryptionLock)
            {
                lock (_decryptionLock)
                {
                    _encryptor = EncryptorFactory.GetEncryptor(server.method, server.password, server.auth, false);
                }
            }
            this._server = server;
        }
Esempio n. 5
0
        public void CreateRemote()
        {
            Server server = _controller.GetAServer(IStrategyCallerType.TCP, (IPEndPoint)_connection.RemoteEndPoint,
                                                   _destEndPoint);

            if (server == null || server.server == "")
            {
                throw new ArgumentException("No server configured");
            }

            _encryptor = EncryptorFactory.GetEncryptor(server.method, server.password);

            this._server = server;

            /* prepare address buffer length for AEAD */
            Logger.Debug($"_addrBufLength={_addrBufLength}");
            _encryptor.AddrBufLength = _addrBufLength;
        }