public async Task AddIncomingPeer(Socket socket)
{
var peer = new Peer(socket, isSeed: false, isIncoming: true);
try
{
await ConnectAndHandshake(peer);
PeerHandshakeCompleted?.Invoke(peer);
this.pendingPeers.TryRemove(peer);
this.connectedPeers.TryAdd(peer);
}
catch (Exception e)
{
DisconnectPeer(peer, e);
throw;
}
}