Changeset 920572d


Ignore:
Timestamp:
Mar 2, 2017 1:27:30 PM (3 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
69ad957
Parents:
a6e62afc
Message:

UDPAddress: Make most fields final

File:
1 edited

Legend:

Unmodified
Added
Removed
  • router/java/src/net/i2p/router/transport/udp/UDPAddress.java

    ra6e62afc r920572d  
    2222    private final int _port;
    2323    private final byte[] _introKey;
    24     private String _introHosts[];
    25     private InetAddress _introAddresses[];
    26     private int _introPorts[];
    27     private byte[] _introKeys[];
    28     private long _introTags[];
    29     private int _mtu;
     24    private final String _introHosts[];
     25    private final InetAddress _introAddresses[];
     26    private final int _introPorts[];
     27    private final byte[] _introKeys[];
     28    private final long _introTags[];
     29    private final int _mtu;
    3030   
    3131    public static final String PROP_PORT = RouterAddress.PROP_PORT;
     
    6262
    6363    public UDPAddress(RouterAddress addr) {
    64         // TODO make everything final
    6564        if (addr == null) {
    6665            _host = null;
    6766            _port = 0;
    6867            _introKey = null;
     68            _introHosts = null;
     69            _introAddresses = null;
     70            _introPorts = null;
     71            _introKeys = null;
     72            _introTags = null;
     73            _mtu = 0;
    6974            return;
    7075        }
    7176        _host = addr.getHost();
    7277        _port = addr.getPort();
     78
     79        int cmtu = 0;
    7380        try {
    7481            String mtu = addr.getOption(PROP_MTU);
    7582            if (mtu != null) {
    7683                boolean isIPv6 = _host != null && _host.contains(":");
    77                 _mtu = MTU.rectify(isIPv6, Integer.parseInt(mtu));
     84                cmtu = MTU.rectify(isIPv6, Integer.parseInt(mtu));
    7885            }
    7986        } catch (NumberFormatException nfe) {}
     87        _mtu = cmtu;
     88
    8089        String key = addr.getOption(PROP_INTRO_KEY);
    8190        if (key != null) {
     
    8998        }
    9099       
     100        byte[][] cintroKeys = null;
     101        long[] cintroTags = null;
     102        int[] cintroPorts = null;
     103        String[] cintroHosts = null;
     104        InetAddress[] cintroAddresses = null;
    91105        for (int i = MAX_INTRODUCERS - 1; i >= 0; i--) {
    92106            String host = addr.getOption(PROP_INTRO_HOST[i]);
     
    115129                continue;
    116130            }
    117             if (_introHosts == null) {
    118                 _introHosts = new String[i+1];
    119                 _introPorts = new int[i+1];
    120                 _introAddresses = new InetAddress[i+1];
    121                 _introKeys = new byte[i+1][];
    122                 _introTags = new long[i+1];
    123             }
    124             _introHosts[i] = host;
    125             _introPorts[i] = p;
    126             _introKeys[i] = ikey;
    127             _introTags[i] = tag;
     131            if (cintroHosts == null) {
     132                cintroHosts = new String[i+1];
     133                cintroPorts = new int[i+1];
     134                cintroAddresses = new InetAddress[i+1];
     135                cintroKeys = new byte[i+1][];
     136                cintroTags = new long[i+1];
     137            }
     138            cintroHosts[i] = host;
     139            cintroPorts[i] = p;
     140            cintroKeys[i] = ikey;
     141            cintroTags[i] = tag;
    128142        }
    129143       
    130144        int numOK = 0;
    131         if (_introHosts != null) {
    132             for (int i = 0; i < _introHosts.length; i++) {
    133                 if ( (_introKeys[i] != null) &&
    134                      (_introPorts[i] > 0) &&
    135                      (_introTags[i] > 0) &&
    136                      (_introHosts[i] != null) )
     145        if (cintroHosts != null) {
     146            for (int i = 0; i < cintroHosts.length; i++) {
     147                if ( (cintroKeys[i] != null) &&
     148                     (cintroPorts[i] > 0) &&
     149                     (cintroTags[i] > 0) &&
     150                     (cintroHosts[i] != null) )
    137151                    numOK++;
    138152            }
    139             if (numOK != _introHosts.length) {
     153            if (numOK != cintroHosts.length) {
    140154                String hosts[] = new String[numOK];
    141155                int ports[] = new int[numOK];
     
    143157                byte keys[][] = new byte[numOK][];
    144158                int cur = 0;
    145                 for (int i = 0; i < _introHosts.length; i++) {
    146                     if ( (_introKeys[i] != null) &&
    147                          (_introPorts[i] > 0) &&
    148                          (_introTags[i] > 0) &&
    149                          (_introHosts[i] != null) ) {
    150                         hosts[cur] = _introHosts[i];
    151                         ports[cur] = _introPorts[i];
    152                         tags[cur] = _introTags[i];
    153                         keys[cur] = _introKeys[i];
     159                for (int i = 0; i < cintroHosts.length; i++) {
     160                    if ( (cintroKeys[i] != null) &&
     161                         (cintroPorts[i] > 0) &&
     162                         (cintroTags[i] > 0) &&
     163                         (cintroHosts[i] != null) ) {
     164                        hosts[cur] = cintroHosts[i];
     165                        ports[cur] = cintroPorts[i];
     166                        tags[cur] = cintroTags[i];
     167                        keys[cur] = cintroKeys[i];
    154168                    }
    155169                }
    156                 _introKeys = keys;
    157                 _introTags = tags;
    158                 _introPorts = ports;
    159                 _introHosts = hosts;
    160                 _introAddresses = new InetAddress[numOK];
    161             }
    162         }
     170                cintroKeys = keys;
     171                cintroTags = tags;
     172                cintroPorts = ports;
     173                cintroHosts = hosts;
     174                cintroAddresses = new InetAddress[numOK];
     175            }
     176        }
     177        _introKeys = cintroKeys;
     178        _introTags = cintroTags;
     179        _introPorts = cintroPorts;
     180        _introHosts = cintroHosts;
     181        _introAddresses = cintroAddresses;
    163182    }
    164183   
Note: See TracChangeset for help on using the changeset viewer.