summaryrefslogtreecommitdiffstats
path: root/bcprov/src/main/java/org/bouncycastle/crypto/tls/test/UnreliableDatagramTransport.java
diff options
context:
space:
mode:
Diffstat (limited to 'bcprov/src/main/java/org/bouncycastle/crypto/tls/test/UnreliableDatagramTransport.java')
-rw-r--r--bcprov/src/main/java/org/bouncycastle/crypto/tls/test/UnreliableDatagramTransport.java93
1 files changed, 0 insertions, 93 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/crypto/tls/test/UnreliableDatagramTransport.java b/bcprov/src/main/java/org/bouncycastle/crypto/tls/test/UnreliableDatagramTransport.java
deleted file mode 100644
index bdc205a..0000000
--- a/bcprov/src/main/java/org/bouncycastle/crypto/tls/test/UnreliableDatagramTransport.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package org.bouncycastle.crypto.tls.test;
-
-import java.io.IOException;
-import java.util.Random;
-
-import org.bouncycastle.crypto.tls.DatagramTransport;
-
-public class UnreliableDatagramTransport
- implements DatagramTransport
-{
-
- private final DatagramTransport transport;
- private final Random random;
- private final int percentPacketLossReceiving, percentPacketLossSending;
-
- public UnreliableDatagramTransport(DatagramTransport transport, Random random,
- int percentPacketLossReceiving, int percentPacketLossSending)
- {
- if (percentPacketLossReceiving < 0 || percentPacketLossReceiving > 100)
- {
- throw new IllegalArgumentException("'percentPacketLossReceiving' out of range");
- }
- if (percentPacketLossSending < 0 || percentPacketLossSending > 100)
- {
- throw new IllegalArgumentException("'percentPacketLossSending' out of range");
- }
-
- this.transport = transport;
- this.random = random;
- this.percentPacketLossReceiving = percentPacketLossReceiving;
- this.percentPacketLossSending = percentPacketLossSending;
- }
-
- public int getReceiveLimit()
- throws IOException
- {
- return transport.getReceiveLimit();
- }
-
- public int getSendLimit()
- throws IOException
- {
- return transport.getSendLimit();
- }
-
- public int receive(byte[] buf, int off, int len, int waitMillis)
- throws IOException
- {
- long endMillis = System.currentTimeMillis() + waitMillis;
- for (; ; )
- {
- int length = transport.receive(buf, off, len, waitMillis);
- if (length < 0 || !lostPacket(percentPacketLossReceiving))
- {
- return length;
- }
-
- System.out.println("PACKET LOSS (" + length + " byte packet not received)");
-
- long now = System.currentTimeMillis();
- if (now >= endMillis)
- {
- return -1;
- }
-
- waitMillis = (int)(endMillis - now);
- }
- }
-
- public void send(byte[] buf, int off, int len)
- throws IOException
- {
- if (lostPacket(percentPacketLossSending))
- {
- System.out.println("PACKET LOSS (" + len + " byte packet not sent)");
- }
- else
- {
- transport.send(buf, off, len);
- }
- }
-
- public void close()
- throws IOException
- {
- transport.close();
- }
-
- private boolean lostPacket(int percentPacketLoss)
- {
- return percentPacketLoss > 0 && random.nextInt(100) < percentPacketLoss;
- }
-}