Exemplo n.º 1
0
        public override byte[] Encode(G2Protocol protocol)
        {
            lock (protocol.WriteSection)
            {
                G2Frame po = protocol.WritePacket(null, NetworkPacket.Pong, null);

                if (Source != null)
                {
                    Source.WritePacket(protocol, po, Packet_Source);
                }

                if (RemoteIP != null)
                {
                    protocol.WritePacket(po, Packet_RemoteIP, RemoteIP.GetAddressBytes());
                }

                if (Direct)
                {
                    protocol.WritePacket(po, Packet_Direct, null);
                }

                if (Version != 0)
                {
                    protocol.WritePacket(po, Packet_Version, CompactNum.GetBytes(Version));
                }


                // network packet
                InternalData = protocol.WriteFinish();

                return(base.Encode(protocol));
            }
        }
Exemplo n.º 2
0
        public override byte[] Encode(G2Protocol protocol)
        {
            lock (protocol.WriteSection)
            {
                G2Frame ack = protocol.WritePacket(null, NetworkPacket.SearchAck, null);

                Source.WritePacket(protocol, ack, Packet_Source);

                protocol.WritePacket(ack, Packet_SearchID, BitConverter.GetBytes(SearchID));
                protocol.WritePacket(ack, Packet_Service, CompactNum.GetBytes(Service));

                if (Proxied)
                {
                    protocol.WritePacket(ack, Packet_Proxied, null);
                }

                foreach (DhtContact contact in ContactList)
                {
                    contact.WritePacket(protocol, ack, Packet_Contacts);
                }

                foreach (byte[] value in ValueList)
                {
                    protocol.WritePacket(ack, Packet_Values, value);
                }

                InternalData = protocol.WriteFinish();

                return(base.Encode(protocol));
            }
        }
Exemplo n.º 3
0
        public override byte[] Encode(G2Protocol protocol)
        {
            lock (protocol.WriteSection)
            {
                G2Frame ack = protocol.WritePacket(null, NetworkPacket.CrawlAck, null);

                Source.WritePacket(protocol, ack, Packet_Source);
                protocol.WritePacket(ack, Packet_Version, UTF8Encoding.UTF8.GetBytes(Version));
                protocol.WritePacket(ack, Packet_Uptime, BitConverter.GetBytes(Uptime));

                foreach (DhtContact proxy in ProxyServers)
                {
                    proxy.WritePacket(protocol, ack, Packet_ProxyServers);
                }

                foreach (DhtContact proxy in ProxyClients)
                {
                    proxy.WritePacket(protocol, ack, Packet_ProxyClients);
                }

                // network packet
                InternalData = protocol.WriteFinish();

                return(base.Encode(protocol));
            }
        }
Exemplo n.º 4
0
        public override byte[] Encode(G2Protocol protocol)
        {
            lock (protocol.WriteSection)
            {
                G2Frame req = protocol.WritePacket(null, NetworkPacket.StoreRequest, null);

                Source.WritePacket(protocol, req, Packet_Source);

                protocol.WritePacket(req, Packet_Key, BitConverter.GetBytes(Key));
                protocol.WritePacket(req, Packet_Service, CompactNum.GetBytes(Service));
                protocol.WritePacket(req, Packet_DataType, CompactNum.GetBytes(DataType));
                protocol.WritePacket(req, Packet_Data, Data);

                protocol.WritePacket(req, Packet_TTL, BitConverter.GetBytes(TTL));

                InternalData = protocol.WriteFinish();

                return(base.Encode(protocol));
            }
        }
Exemplo n.º 5
0
        public override byte[] Encode(G2Protocol protocol)
        {
            lock (protocol.WriteSection)
            {
                // ping packet
                G2Frame pi = protocol.WritePacket(null, NetworkPacket.Ping, BitConverter.GetBytes(Ident));

                if (Source != null)
                {
                    Source.WritePacket(protocol, pi, Packet_Source);
                }

                if (RemoteIP != null)
                {
                    protocol.WritePacket(pi, Packet_RemoteIP, RemoteIP.GetAddressBytes());
                }

                // network packet
                InternalData = protocol.WriteFinish();

                return(base.Encode(protocol));
            }
        }
Exemplo n.º 6
0
        public override byte[] Encode(G2Protocol protocol)
        {
            lock (protocol.WriteSection)
            {
                G2Frame pa = protocol.WritePacket(null, NetworkPacket.ProxyAck, null);

                Source.WritePacket(protocol, pa, Packet_Source);

                if (Accept)
                {
                    protocol.WritePacket(pa, Packet_Accept, null);
                }

                foreach (DhtContact contact in ContactList)
                {
                    contact.WritePacket(protocol, pa, Packet_Contacts);
                }

                // network packet
                InternalData = protocol.WriteFinish();

                return(base.Encode(protocol));
            }
        }
Exemplo n.º 7
0
        public override byte[] Encode(G2Protocol protocol)
        {
            lock (protocol.WriteSection)
            {
                G2Frame req = protocol.WritePacket(null, NetworkPacket.SearchRequest, null);

                Source.WritePacket(protocol, req, Packet_Source);
                protocol.WritePacket(req, Packet_Nodes, BitConverter.GetBytes(Nodes));
                protocol.WritePacket(req, Packet_SearchID, BitConverter.GetBytes(SearchID));
                protocol.WritePacket(req, Packet_Target, BitConverter.GetBytes(TargetID));
                protocol.WritePacket(req, Packet_Service, CompactNum.GetBytes(Service));
                protocol.WritePacket(req, Packet_DataType, CompactNum.GetBytes(DataType));
                protocol.WritePacket(req, Packet_Parameters, Parameters);

                if (EndProxySearch)
                {
                    protocol.WritePacket(req, Packet_EndSearch, BitConverter.GetBytes(true));
                }

                InternalData = protocol.WriteFinish();

                return(base.Encode(protocol));
            }
        }