9/4/2016 1:32:07 PM: Requesting AICH Hash (HighId) from client xxx.201.157.209 'Badmac' (eMule v0.50a,OnQueue/OnUploadQueue/None) 9/4/2016 1:32:25 PM: AICH Request failed, Trying to ask another client (file xxx.avi, Part: 105, Client xxx.201.157.209 'Badmac' (eMule v0.50a,OnQueue/OnUploadQueue/None)) 9/4/2016 3:10:17 PM: Download session started. User: xxx.201.157.209 'Badmac' (eMule v0.50a,OnQueue/OnUploadQueue/None) in SetDownloadState(). 9/4/2016 3:10:18 PM: Error: Received unrequested AICH Packet - while processing eMule packet: opcode=OP_AICHANSWER size=1186; Client=xxx.201.157.209 'Badmac' (eMule v0.50a,Downloading/OnUploadQueue/None) 9/4/2016 3:10:18 PM: Download session ended: ProcessExtPacket error. Received unrequested AICH Packet User: xxx.201.157.209 'Badmac' (eMule v0.50a,Downloading/OnUploadQueue/None) in SetDownloadState(). New State: 12, Length: 0 secs, Payload: 0 Bytes, Transferred: 0 Bytes, Req blocks not yet completed: 3.
As you can see, we got unexpected AICH packet when the download session started, and caused an exception which end the download session.
The problem is, when we tried to connect this client for AICH info, the connection failed to establish, thus the AICH request flag reset in CUpDownClient::Disconnected(), while the packet keep in m_WaitingPackets_list. Next time the remote client connected with us, the AICH request packet sent with flag remain false.
Should we just purge m_WaitingPackets_list when the CUpDownClient::Disconnected() invoked, without side effect? I am asking this because the memory occupation of eMule seems dropped a lot, if purging m_WaitingPackets_list in CUpDownClient::Disconnected().
This post has been edited by Enig123: 28 September 2016 - 05:45 AM