Ejemplo n.º 1
0
        public void Connect(String hashlink)
        {
            if (this.Local)
            {
                Events.LinkError(LinkError.HubMode);
                return;
            }

            if (this.Busy)
            {
                Events.LinkError(LinkError.AlreadyLinking);
                return;
            }

            Room obj = Hashlink.DecodeHashlink(hashlink);

            if (obj == null)
            {
                Events.LinkError(LinkError.InvalidHashlink);
                return;
            }

            if (((LinkHub.LinkMode)Settings.Get <int>("link_mode")) != LinkHub.LinkMode.Leaf)
            {
                Events.LinkError(LinkError.EnableLeafLinking);
                return;
            }

            UserPool.AUsers.ForEachWhere(x => x.Cloaked = false, x => x.LoggedIn);
            this.data_in.Clear();
            this.data_out      = new ConcurrentQueue <byte[]>();
            this.CanReconnect  = Settings.Get <bool>("link_reconnect");
            this.LoginPhase    = LinkLogin.Connecting;
            this.Time          = core.Time.Now;
            this.Busy          = true;
            this.Local         = false;
            this.ExternalIP    = obj.IP;
            this.Port          = obj.Port;
            this.HubName       = obj.Name;
            this.Sock          = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            this.Sock.Blocking = false;

            try
            {
                this.Sock.Connect(new IPEndPoint(this.ExternalIP, this.Port));
            }
            catch { }
        }
Ejemplo n.º 2
0
        public static Objects.JSHashlinkResult Decode(ScriptEngine eng, object a)
        {
            if (a is String || a is ConcatenatedString)
            {
                String str = a.ToString();

                try
                {
                    DecryptedHashlink hashlink = Hashlink.DecodeHashlink(a.ToString());

                    if (hashlink != null)
                    {
                        return(new Objects.JSHashlinkResult(eng.Object.InstancePrototype, hashlink));
                    }
                }
                catch { }
            }

            return(null);
        }
 public IHashlinkRoom Decrypt(String hashlink)
 {
     return(Hashlink.DecodeHashlink(hashlink));
 }