mirror of
https://github.com/RetroShare/RetroShare.git
synced 2024-10-01 02:35:48 -04:00
Several fixes:
- stores an iterator rather than searching a map twice - deletes a message when it can't be routed in routeGenericTunnelItem() - deletes a message when its contents allocation failed in sendFileData() git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3244 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
4b1a42a4c5
commit
c0ba17fce3
@ -441,8 +441,9 @@ void p3turtle::locked_closeTunnel(TurtleTunnelId tid,std::vector<std::pair<Turtl
|
|||||||
#ifdef P3TURTLE_DEBUG
|
#ifdef P3TURTLE_DEBUG
|
||||||
std::cerr << " Tunnel is a ending point. Also removing associated outgoing hash." ;
|
std::cerr << " Tunnel is a ending point. Also removing associated outgoing hash." ;
|
||||||
#endif
|
#endif
|
||||||
if(_outgoing_file_hashes.find(it->second.hash) != _outgoing_file_hashes.end())
|
std::map<TurtleFileHash,FileInfo>::iterator itHash = _outgoing_file_hashes.find(it->second.hash);
|
||||||
_outgoing_file_hashes.erase(_outgoing_file_hashes.find(it->second.hash)) ;
|
if(itHash != _outgoing_file_hashes.end())
|
||||||
|
_outgoing_file_hashes.erase(itHash) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
_local_tunnels.erase(it) ;
|
_local_tunnels.erase(it) ;
|
||||||
@ -801,6 +802,7 @@ void p3turtle::routeGenericTunnelItem(RsTurtleGenericTunnelItem *item)
|
|||||||
#ifdef P3TURTLE_DEBUG
|
#ifdef P3TURTLE_DEBUG
|
||||||
std::cerr << "p3turtle: got file map with unknown tunnel id " << (void*)item->tunnelId() << std::endl ;
|
std::cerr << "p3turtle: got file map with unknown tunnel id " << (void*)item->tunnelId() << std::endl ;
|
||||||
#endif
|
#endif
|
||||||
|
delete item;
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1107,6 +1109,7 @@ void p3turtle::sendFileData(const std::string& peerId, const std::string& hash,
|
|||||||
if(item->chunk_data == NULL)
|
if(item->chunk_data == NULL)
|
||||||
{
|
{
|
||||||
std::cerr << "p3turtle: Warning: failed malloc of " << chunksize << " bytes for sending data packet." << std::endl ;
|
std::cerr << "p3turtle: Warning: failed malloc of " << chunksize << " bytes for sending data packet." << std::endl ;
|
||||||
|
delete item;
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
memcpy(item->chunk_data,(void*)((uint8_t*)data),chunksize) ;
|
memcpy(item->chunk_data,(void*)((uint8_t*)data),chunksize) ;
|
||||||
|
Loading…
Reference in New Issue
Block a user