I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
Commit b6ea55f7 authored by jrandom's avatar jrandom Committed by zzz
Browse files

more error handling (thanks frosk)

parent 5f18cec9
No related branches found
No related tags found
No related merge requests found
...@@ -386,7 +386,9 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority ...@@ -386,7 +386,9 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
public PeerState getPeerState(char capacity) { public PeerState getPeerState(char capacity) {
long now = _context.clock().now(); long now = _context.clock().now();
int index = _context.random().nextInt(1024); int index = _context.random().nextInt(1024);
List peers = _peersByCapacity[capacity-'A']; int cap = capacity - 'A';
if ( (cap < 0) || (cap >= _peersByCapacity.length) ) return null;
List peers = _peersByCapacity[cap];
int size = 0; int size = 0;
int off = 0; int off = 0;
PeerState rv = null; PeerState rv = null;
...@@ -447,7 +449,10 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority ...@@ -447,7 +449,10 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
PeerState peer = getPeerState(from); PeerState peer = getPeerState(from);
for (int i = 0; i < capacities.length(); i++) { for (int i = 0; i < capacities.length(); i++) {
char capacity = capacities.charAt(i); char capacity = capacities.charAt(i);
List peers = _peersByCapacity[capacity-'A']; int cap = capacity - 'A';
if ( (cap < 0) || (cap >= _peersByCapacity.length) )
continue;
List peers = _peersByCapacity[cap];
synchronized (peers) { synchronized (peers) {
if ( (peers.size() < MAX_PEERS_PER_CAPACITY) && (!peers.contains(peer)) ) if ( (peers.size() < MAX_PEERS_PER_CAPACITY) && (!peers.contains(peer)) )
peers.add(peer); peers.add(peer);
...@@ -605,7 +610,10 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority ...@@ -605,7 +610,10 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
if (capacities != null) { if (capacities != null) {
for (int i = 0; i < capacities.length(); i++) { for (int i = 0; i < capacities.length(); i++) {
char capacity = capacities.charAt(i); char capacity = capacities.charAt(i);
List peers = _peersByCapacity[capacity-'A']; int cap = capacity - 'A';
if ( (cap < 0) || (cap >= _peersByCapacity.length) )
continue;
List peers = _peersByCapacity[cap];
synchronized (peers) { synchronized (peers) {
peers.remove(peer); peers.remove(peer);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment