/* * For now this class just keeps state of who crawls * through udp. * * the rest of the election state will come here eventually * */ package com.limegroup.gnutella.upelection; import com.limegroup.gnutella.ReplyHandler; import com.limegroup.gnutella.util.FixedSizeExpiringSet; public class PromotionManager { /** * keeps a list of the people who have requested our connection lists. * used to make sure we don't get ping-flooded. * not final so that tests won't take forever. */ private FixedSizeExpiringSet _UDPListRequestors = new FixedSizeExpiringSet(2000, 10*60 * 1000); //10 minutes. /** * whether the reply handler should receive a reply. * used to protect us from ping-flooding. * * @param r the <tt>ReplyHandler</tt> on which the reply is to be sent * @return true if its ok to reply. */ public boolean allowUDPPing(ReplyHandler r) { //this also takes care of multiple instances running on the same ip address. return _UDPListRequestors.add(r.getInetAddress()); } }