public void SearchAlbum(IPeer p, string album, int ttl) { SetOutputMsg("Request from " + p.GetPeerURI()); SetOutputMsg("Searching for album " + album); if (MyAlbum.Contains(album)) { p.MarkAsFoundAlbum(this, album); return; } if (_albumOnKnownPeers.ContainsKey(album)) { IPeer peer = _albumOnKnownPeers[album]; try { p.MarkAsFoundAlbum(peer, album); } catch (Exception) { SetOutputMsg("Peer to respond not found!!!"); } return; } if (--ttl == 0) { return; } foreach (IPeer peer in MyKnownPeers) { try { peer.SearchAlbum(p, album, ttl); } catch (Exception) { MyKnownPeers.Remove(peer); } } }