mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-06-19 11:54:22 -04:00
- Implemented CRC32 map traffic through direct downloads
- replaced the findItems() call into a hand-written search (this was causing a rare bug in displaying downloads) git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3318 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
7a789edcbf
commit
012808ea00
17 changed files with 529 additions and 91 deletions
|
@ -319,6 +319,14 @@ int pqihandler::SendFileChunkMap(RsFileChunkMap *ns)
|
|||
{
|
||||
return HandleRsItem(ns, 0);
|
||||
}
|
||||
int pqihandler::SendFileCRC32MapRequest(RsFileCRC32MapRequest *ns)
|
||||
{
|
||||
return HandleRsItem(ns, 0);
|
||||
}
|
||||
int pqihandler::SendFileCRC32Map(RsFileCRC32Map *ns)
|
||||
{
|
||||
return HandleRsItem(ns, 0);
|
||||
}
|
||||
int pqihandler::SendRsRawItem(RsRawItem *ns)
|
||||
{
|
||||
pqioutput(PQL_DEBUG_BASIC, pqihandlerzone,
|
||||
|
@ -483,6 +491,19 @@ void pqihandler::locked_SortnStoreItem(RsItem *item)
|
|||
item = NULL;
|
||||
break;
|
||||
|
||||
case RS_PKT_SUBTYPE_FI_CRC32_MAP_REQUEST:
|
||||
pqioutput(PQL_DEBUG_BASIC, pqihandlerzone, "SortnStore -> File Crc32Map Request");
|
||||
in_crc32map_request.push_back(item);
|
||||
item = NULL;
|
||||
break;
|
||||
|
||||
case RS_PKT_SUBTYPE_FI_CRC32_MAP:
|
||||
pqioutput(PQL_DEBUG_BASIC, pqihandlerzone, "SortnStore -> File CRC32Map");
|
||||
in_crc32map.push_back(item);
|
||||
item = NULL;
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
break; /* no match! */
|
||||
}
|
||||
|
@ -593,7 +614,32 @@ RsFileChunkMap *pqihandler::GetFileChunkMap()
|
|||
}
|
||||
return NULL;
|
||||
}
|
||||
RsFileCRC32MapRequest *pqihandler::GetFileCRC32MapRequest()
|
||||
{
|
||||
RsStackMutex stack(coreMtx); /**************** LOCKED MUTEX ****************/
|
||||
|
||||
if (in_crc32map_request.size() != 0)
|
||||
{
|
||||
RsFileCRC32MapRequest *fi = dynamic_cast<RsFileCRC32MapRequest *>(in_crc32map_request.front());
|
||||
if (!fi) { delete in_crc32map_request.front(); }
|
||||
in_crc32map_request.pop_front();
|
||||
return fi;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
RsFileCRC32Map *pqihandler::GetFileCRC32Map()
|
||||
{
|
||||
RsStackMutex stack(coreMtx); /**************** LOCKED MUTEX ****************/
|
||||
|
||||
if (in_crc32map.size() != 0)
|
||||
{
|
||||
RsFileCRC32Map *fi = dynamic_cast<RsFileCRC32Map *>(in_crc32map.front());
|
||||
if (!fi) { delete in_crc32map.front(); }
|
||||
in_crc32map.pop_front();
|
||||
return fi;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
RsRawItem *pqihandler::GetRsRawItem()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue