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