コード例 #1
0
        public static String Encode(object a)
        {
            if (a is ObjectInstance)
            {
                try
                {
                    ObjectInstance obj      = (ObjectInstance)a;
                    Hashlink       hashlink = new Hashlink
                    {
                        IP   = IPAddress.Parse(obj.GetPropertyValue("ip").ToString()),
                        Port = ushort.Parse(obj.GetPropertyValue("port").ToString()),
                        Name = obj.GetPropertyValue("name").ToString()
                    };

                    String str = "arlnk://" + Server.Hashlinks.Encrypt(hashlink);

                    if (str != null)
                    {
                        return(str);
                    }
                }
                catch { }
            }

            return(null);
        }
コード例 #2
0
ファイル: JSHashlink.cs プロジェクト: SalvadorOlea/cb0t_
        public static String Encode(object a)
        {
            if (a is ObjectInstance)
            {
                try
                {
                    ObjectInstance obj = (ObjectInstance)a;

                    String str = Hashlink.EncodeHashlink(new ChannelListItem
                    {
                        Name  = obj.GetPropertyValue("name").ToString(),
                        Topic = obj.GetPropertyValue("name").ToString(),
                        IP    = IPAddress.Parse(obj.GetPropertyValue("ip").ToString()),
                        Port  = ushort.Parse(obj.GetPropertyValue("port").ToString())
                    });

                    if (str != null)
                    {
                        return("\arlnk://" + str);
                    }
                }
                catch { }
            }

            return(null);
        }
コード例 #3
0
ファイル: LinkClient.cs プロジェクト: miromancekimika/hola
        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 { }
        }
コード例 #4
0
ファイル: JSHashlink.cs プロジェクト: SalvadorOlea/cb0t_
        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);
        }
コード例 #5
0
 public String Encrypt(IHashlinkRoom room)
 {
     return(Hashlink.EncodeHashlink(room));
 }
コード例 #6
0
 public IHashlinkRoom Decrypt(String hashlink)
 {
     return(Hashlink.DecodeHashlink(hashlink));
 }