~smaioli/azureus/ubuntu-experimental

« back to all changes in this revision

Viewing changes to com/aelitis/azureus/core/dht/transport/util/DHTTransportStatsImpl.java

MergedĀ VuzeĀ 4.0.0.4.

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
 
23
23
package com.aelitis.azureus.core.dht.transport.util;
24
24
 
 
25
import java.net.InetSocketAddress;
25
26
import java.util.Arrays;
26
27
 
27
28
import org.gudy.azureus2.core3.util.SystemTime;
30
31
import com.aelitis.azureus.core.dht.transport.DHTTransportStats;
31
32
import com.aelitis.azureus.core.dht.transport.udp.impl.DHTUDPPacketHelper;
32
33
import com.aelitis.azureus.core.dht.transport.udp.impl.DHTUDPPacketRequest;
 
34
import com.aelitis.azureus.core.util.bloom.BloomFilter;
 
35
import com.aelitis.azureus.core.util.bloom.BloomFilterFactory;
33
36
 
34
37
/**
35
38
 * @author parg
66
69
        private long            last_skew_average;
67
70
        private long            last_skew_average_time;
68
71
        
 
72
        private BloomFilter     skew_originator_bloom = 
 
73
                BloomFilterFactory.createRotating(
 
74
                                BloomFilterFactory.createAddOnly( SKEW_VALUE_MAX*4 ),
 
75
                                2 );
69
76
        protected
70
77
        DHTTransportStatsImpl(
71
78
                byte    _protocol_version )
487
494
        
488
495
        public void
489
496
        recordSkew(
490
 
                long            skew )
 
497
                InetSocketAddress       originator_address,
 
498
                long                            skew )
491
499
        {
 
500
                byte[]  bytes = originator_address.getAddress().getAddress();
 
501
                
 
502
                if ( skew_originator_bloom.contains( bytes)){
 
503
                
 
504
                        //System.out.println( "skipping skew: " + originator_address );
 
505
                        
 
506
                        return;
 
507
                }
 
508
                
 
509
                skew_originator_bloom.add( bytes );
 
510
                
 
511
                //System.out.println( "adding skew: " + originator_address + "/" + skew );
 
512
                
492
513
                int     i_skew = skew<Integer.MAX_VALUE?(int)skew:(Integer.MAX_VALUE-1);
493
514
                
494
515
                        // no sync here as not important so ensure things work ok