added list of current searches to avoid receiving duplicate results

git-svn-id: svn://anubis/gvsu@58 45c1a28c-8058-47b2-ae61-ca45b979098e
This commit is contained in:
josh 2008-03-09 04:46:28 +00:00
parent 5ced7328ae
commit 0e63ffa48b

View File

@ -9,11 +9,13 @@ public class KaZaServer implements Runnable
private ServerSocket m_serverSocket;
private HashMap<String, ClientInfo> m_clientData;
private Vector<Socket> m_peerGroupLeaders;
private HashMap<String, Integer> m_currentSearches;
public KaZaServer()
{
m_clientData = new HashMap<String, ClientInfo>();
m_peerGroupLeaders = new Vector<Socket>();
m_currentSearches = new HashMap<String, Integer>();
}
public void run()
@ -195,6 +197,14 @@ public class KaZaServer implements Runnable
{
String results = "";
String querylc = query.toLowerCase();
synchronized (m_currentSearches)
{
if (m_currentSearches.containsKey(querylc))
return results;
m_currentSearches.put(querylc, 1);
}
if (depth > 0)
{
synchronized (m_peerGroupLeaders)
@ -241,6 +251,12 @@ public class KaZaServer implements Runnable
}
}
}
synchronized (m_currentSearches)
{
m_currentSearches.remove(querylc);
}
return results;
}