@Override public boolean contains( byte[] value ) { return( current_filter.contains(value)); }
@Override public boolean hasBeenSentTo( DHTTransportContact contact ) { BloomFilter filter = sent_to_bloom; if ( filter == null ){ return( false ); } return( filter.contains( contact.getID())); }
protected boolean isKnownSeed( InetSocketAddress address ) { synchronized( registered_legacy_managers ){ if ( known_seeds == null ){ return( false ); } return( known_seeds.contains( AddressUtils.getAddressBytes( address ))); } }
protected boolean isPersistentlyDeleted( RelatedContent content ) { if ( persist_del_bloom == null ){ List<byte[]> entries = loadPersistentlyDeleted(); persist_del_bloom = BloomFilterFactory.createAddOnly( Math.max( PD_BLOOM_INITIAL_SIZE, entries.size()*10 + PD_BLOOM_INCREMENT_SIZE )); for ( byte[] k: entries ){ persist_del_bloom.add( k ); } } byte[] key = getPermDelKey( content ); return( persist_del_bloom.contains( key )); }
public void recordSkew( InetSocketAddress originator_address, long skew ) { byte[] bytes = AddressUtils.getAddressBytes( originator_address ); if ( skew_originator_bloom.contains( bytes)){ //System.out.println( "skipping skew: " + originator_address ); return; } skew_originator_bloom.add( bytes ); //System.out.println( "adding skew: " + originator_address + "/" + skew ); int i_skew = skew<Integer.MAX_VALUE?(int)skew:(Integer.MAX_VALUE-1); // no sync here as not important so ensure things work ok int pos = skew_pos; skew_values[ pos++ ] = i_skew; if ( pos == SKEW_VALUE_MAX ){ pos = 0; } skew_pos = pos; }
if ( negative_result_bloom.contains( target.toString().getBytes() )){
protected void findContacts() { DHTTransportContact[] reachables = dht.getTransport().getReachableContacts(); for (int i=0;i<reachables.length;i++){ DHTTransportContact contact = reachables[i]; byte[] address = contact.getAddress().getAddress().getAddress(); if ( tried_bloom == null || tried_bloom.getEntryCount() > 500 ){ tried_bloom = BloomFilterFactory.createAddOnly( 4096 ); } if ( !tried_bloom.contains( address )){ tried_bloom.add( address ); synchronized( pending_contacts ){ potentialPing ping = new potentialPing( contact, DHTNetworkPositionManager.estimateRTT( contact.getNetworkPositions(), dht.getTransport().getLocalContact().getNetworkPositions())); pending_contacts.add( 0, ping ); if ( pending_contacts.size() > 60 ){ pending_contacts.removeLast(); } } } } }
if ( negative_result_bloom.contains( traversal.getTarget().toString().getBytes())){
if ( filter_one.contains( peer_serialisation ) && recursion_count < 100 ) {
@Override public void contactKnown( byte[] node_id, DHTRouterContactAttachment attachment, boolean force ) { // especially for small DHTs we don't want to prevent a contact from being re-added as long as they've been away for // a bit if ( SystemTime.getMonotonousTime() - recent_contact_bloom.getStartTimeMono() > 10*60*1000 ){ recent_contact_bloom.clear(); } if ( recent_contact_bloom.contains( node_id )){ if ( !force ){ return; } } recent_contact_bloom.add( node_id ); addContact( node_id, attachment, false ); }
protected void receive( DHTUDPPacketRequest request ) { if ( destroyed ){ return; } // incoming request if ( test_network_alive ){ request.setAddress( AddressUtils.adjustDHTAddress( request.getAddress(), false )); // an alien request is one that originates from a peer that we haven't recently // talked to byte[] bloom_key = request.getAddress().getAddress().getAddress(); boolean alien = !bloom1.contains( bloom_key ); if ( alien ){ // avoid counting consecutive requests from same contact more than once bloom1.add( bloom_key ); bloom2.add( bloom_key ); } stats.packetReceived( request.getSerialisedSize()); request_handler.process( request, alien ); } }
if ( !ygm_unauth_bloom.contains( address )){
if ( filter.contains( id )){
boolean dup = harvest_op_requester_bloom.contains( originator_bytes );
if ( bad_ip_bloom_filter.contains( addr )){
if ( bloom != null && bloom.contains( address )){