diff options
author | Grant Limberg <glimberg@gmail.com> | 2015-05-02 18:34:47 -0700 |
---|---|---|
committer | Grant Limberg <glimberg@gmail.com> | 2015-05-02 18:34:47 -0700 |
commit | 7054c365f291a95bc8d37f6943fe786f0642790f (patch) | |
tree | 75c055a0a6198f68fcaeb8628c3428810e7a1400 /java/src/com/zerotier | |
parent | 06ab338eccdbeab6a246073500ff10762983acfe (diff) | |
download | infinitytier-7054c365f291a95bc8d37f6943fe786f0642790f.tar.gz infinitytier-7054c365f291a95bc8d37f6943fe786f0642790f.zip |
put a read timeout on the socket
Diffstat (limited to 'java/src/com/zerotier')
-rw-r--r-- | java/src/com/zerotier/one/OneService.java | 23 |
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 { |