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 { } }
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)); }