sdt.home.lifx: fix stop/start bundle issue in LAN mode.

Add timeout on datagram socket.
Patch proposed by Andreas Kraft (DT)

Signed-off-by: BOLLE Sebastien <sebastien.bolle@orange.com>
Signed-off-by: BONNARDEL Gregory <gbonnardel.ext@orange.com>
diff --git a/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.lifx/src/main/java/org/eclipse/om2m/sdt/home/lifx/impl/lan/Server.java b/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.lifx/src/main/java/org/eclipse/om2m/sdt/home/lifx/impl/lan/Server.java
index 91593f1..9438f46 100644
--- a/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.lifx/src/main/java/org/eclipse/om2m/sdt/home/lifx/impl/lan/Server.java
+++ b/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.lifx/src/main/java/org/eclipse/om2m/sdt/home/lifx/impl/lan/Server.java
@@ -8,6 +8,7 @@
 package org.eclipse.om2m.sdt.home.lifx.impl.lan;

 

 import java.io.IOException;

+import java.net.SocketTimeoutException;

 import java.net.DatagramPacket;

 import java.net.DatagramSocket;

 import java.net.InetAddress;

@@ -57,10 +58,12 @@
 	

 	public void init(InetAddress pLocalInetAddress) {

 		try {

+			toBeStopped = false;

 			localInetAddress = pLocalInetAddress;

 			datagramSocket = new DatagramSocket(56700, localInetAddress);

 			datagramSocket.setReuseAddress(true);

-			

+			datagramSocket.setSoTimeout(1000); // 1 s timeout on the datagram socket

+

 		} catch (Exception e) {

 			e.printStackTrace();

 

@@ -75,7 +78,7 @@
 	}

 

 	public void stopServer() {

-		if (toBeStopped != false) {

+		if (toBeStopped == false) {

 			toBeStopped = true;

 			datagramSocket.disconnect();

 			datagramSocket.close();

@@ -84,6 +87,7 @@
 				serverThread.join();

 			} catch (InterruptedException e) {

 			}

+			Logger.getInstance().info(Server.class, "DatagramSocket closed");

 		}

 		

 		

@@ -102,12 +106,13 @@
 				Thread t = new Thread(rph);

 				t.start();

 				

+			} catch (SocketTimeoutException e) {

+				// ignore

 			} catch (Exception e) {

 				e.printStackTrace();

 			}

-				

-		}

 

+		}

 	}

 

 	protected void notify(LIFXGlobalFrame globalFrame) {