Exemple #1
0
        public void ProcessSources(byte[] packet)
        {
            #if VERBOSE
            CKernel.LogClient.AddLog("ProcessSources",m_ID);
            #endif
            CSourceExchangeResponse SourceExchangeResponse;

            try
            {
                SourceExchangeResponse=new CSourceExchangeResponse(new MemoryStream(packet),m_SourceExchangeVersion);

                Debug.WriteLine(DateTime.Now.ToLongTimeString() + " : Received SourceExchange = "+SourceExchangeResponse.nSources.ToString()+" from "+m_UserName+" | FileHash = "+ CKernel.HashToString(SourceExchangeResponse.FileHash));

                CElement Element=(CElement)CKernel.FilesList[SourceExchangeResponse.FileHash];

                if ((Element!=null)&&(Element.File!=null)&&(!Element.File.Completed))
                {
                    CKernel.ClientsList.AddClientsToFile(SourceExchangeResponse.Sources,SourceExchangeResponse.FileHash);
                }
            }
            catch
            {
                Debug.WriteLine("Invalid source exchange packet"+m_Software+" "+m_SourceExchangeVersion);
            }
        }
Exemple #2
0
        public void ProcessSourceRequest(byte[] packet)
        {
            #if VERBOSE
            CKernel.LogClient.AddLog("ProcessSourceRequest",m_ID);
            #endif
            MemoryStream requestBuffer=new MemoryStream(packet);
            CRequestSourceExchange requestSourceExchange=new CRequestSourceExchange(requestBuffer);

            requestBuffer.Close();
            requestBuffer=null;

            MemoryStream responsePacket=new MemoryStream();
            CSourceExchangeResponse sourceExchangeResponse=new CSourceExchangeResponse(responsePacket,requestSourceExchange.FileHash,m_ID,m_Port,m_SourceExchangeVersion);

            if (sourceExchangeResponse.nSources>0)
            {
            #if VERBOSE
                CKernel.LogClient.AddLog("Sent "+Convert.ToString(sourceExchangeResponse.nSources)+" sources\n",m_ID);
            #endif
                if (connection!=null)
                {
                    connection.SendPacket(responsePacket);
                }
            }
        }