mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-05-14 12:02:29 -04:00
Improved CRC32Map checking in several ways:
- servers now compute the map in a separate thread - CRC32Maps are kept in cache for 30 mins - CRC32Maps requests cannot be used to overflood a server anymore since their number is limited. - Transfer modules now send keep alive packets to maintain tunnels when asking for a CRC32Map git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4661 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
a9cb864717
commit
d43a131c04
7 changed files with 197 additions and 32 deletions
|
@ -36,6 +36,7 @@ class ftTransferModule;
|
|||
class ftFileProvider;
|
||||
class ftFileCreator;
|
||||
class ftSearch;
|
||||
class CRC32Thread;
|
||||
|
||||
#include <string>
|
||||
#include <list>
|
||||
|
@ -113,6 +114,9 @@ class ftDataMultiplex: public ftDataRecv, public RsQueueThread
|
|||
/* Client Send */
|
||||
bool sendCRC32MapRequest(const std::string& peerId, const std::string& hash) ;
|
||||
|
||||
/* called from a separate thread */
|
||||
bool computeAndSendCRC32Map(const std::string& peerId, const std::string& hash) ;
|
||||
|
||||
/*************** RECV INTERFACE (provides ftDataRecv) ****************/
|
||||
|
||||
/* Client Recv */
|
||||
|
@ -162,6 +166,8 @@ class ftDataMultiplex: public ftDataRecv, public RsQueueThread
|
|||
std::list<ftRequest> mSearchQueue;
|
||||
// std::map<std::string, time_t> mUnknownHashs;
|
||||
|
||||
std::list<CRC32Thread *> _crc32map_threads ;
|
||||
std::map<std::string,std::pair<time_t,CRC32Map> > _cached_crc32maps ;
|
||||
ftDataSend *mDataSend;
|
||||
ftSearch *mSearch;
|
||||
std::string mOwnId;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue