summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
authorGrant Limberg <glimberg@gmail.com>2015-05-02 18:34:47 -0700
committerGrant Limberg <glimberg@gmail.com>2015-05-02 18:34:47 -0700
commit7054c365f291a95bc8d37f6943fe786f0642790f (patch)
tree75c055a0a6198f68fcaeb8628c3428810e7a1400 /java/src
parent06ab338eccdbeab6a246073500ff10762983acfe (diff)
downloadinfinitytier-7054c365f291a95bc8d37f6943fe786f0642790f.tar.gz
infinitytier-7054c365f291a95bc8d37f6943fe786f0642790f.zip
put a read timeout on the socket
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/zerotier/one/OneService.java23
1 files changed, 15 insertions, 8 deletions
diff --git a/java/src/com/zerotier/one/OneService.java b/java/src/com/zerotier/one/OneService.java
index 0d56239e..0477b54d 100644
--- a/java/src/com/zerotier/one/OneService.java
+++ b/java/src/com/zerotier/one/OneService.java
@@ -34,6 +34,7 @@ import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.SocketException;
+import java.net.SocketTimeoutException;
import com.zerotier.sdk.Event;
import com.zerotier.sdk.EventListener;
@@ -68,14 +69,16 @@ public class OneService extends Thread implements Runnable, PacketSender,
bgtask[0] = 0;
DatagramPacket p = new DatagramPacket(buffer, buffer.length);
- _udpSocket.receive(p);
- if(p.getLength() > 0)
- {
- System.out.println("Got Data From: " + p.getAddress().toString() +":" + p.getPort());
-
- _node.processWirePacket(System.currentTimeMillis(), new InetSocketAddress(p.getAddress(), p.getPort()), 0, p.getData(), bgtask);
- _nextBackgroundTaskDeadline = bgtask[0];
- }
+ try {
+ _udpSocket.receive(p);
+ if(p.getLength() > 0)
+ {
+ System.out.println("Got Data From: " + p.getAddress().toString() +":" + p.getPort());
+
+ _node.processWirePacket(System.currentTimeMillis(), new InetSocketAddress(p.getAddress(), p.getPort()), 0, p.getData(), bgtask);
+ _nextBackgroundTaskDeadline = bgtask[0];
+ }
+ } catch (SocketTimeoutException e) {}
}
} catch (Exception e) {
e.printStackTrace();
@@ -90,6 +93,7 @@ public class OneService extends Thread implements Runnable, PacketSender,
try {
_udpSocket = new DatagramSocket(_port);
+ _udpSocket.setSoTimeout(100);
_tcpSocket = new ServerSocket();
_tcpSocket.bind(new InetSocketAddress("127.0.0.1", _port));
} catch (SocketException e) {
@@ -114,6 +118,9 @@ public class OneService extends Thread implements Runnable, PacketSender,
@Override
public void run() {
+ if(_node == null)
+ return;
+
while(true) {
try {