private static void KnownPeersRequest(PacketHeader packetHeader, Connection connection, string itemCheckSum)
{
try
{
DistributedItem selectedItem = null;
if (DFS.loggingEnabled) DFS._DFSLogger.Trace(" ... known peers request for item (" + itemCheckSum + ").");
lock (globalDFSLocker)
{
if (swarmedItemsDict.ContainsKey(itemCheckSum))
selectedItem = swarmedItemsDict[itemCheckSum];
}
if (selectedItem == null)
//Inform peer that we don't actually have the requested item so that it won't bother us again
UDPConnection.SendObject("DFS_ItemRemovalUpdate", new ItemRemovalUpdate(NetworkComms.NetworkIdentifier, itemCheckSum, false), (IPEndPoint)connection.ConnectionInfo.RemoteEndPoint, nullCompressionSRO);
else
UDPConnection.SendObject("DFS_KnownPeersUpdate", new KnownPeerEndPoints(selectedItem.Data.CompleteDataCheckSum, selectedItem.SwarmChunkAvailability.AllPeerEndPoints()), (IPEndPoint)connection.ConnectionInfo.RemoteEndPoint, nullCompressionSRO);
}
catch (CommsException)
{
//LogTools.LogException(e, "CommsError_IncomingChunkAvailabilityRequest");
}
catch (Exception e)
{
LogTools.LogException(e, "Error_KnownPeersRequest");
}
}