diff src/main/java/jp/ac/u_ryukyu/treevnc/TreeRootFinderListener.java @ 506:3fe7e1a372df

Multicast CUI
author toubaru
date Tue, 19 Feb 2019 15:59:50 +0900
parents af958194248b
children 89f1f7e41838
line wrap: on
line diff
--- a/src/main/java/jp/ac/u_ryukyu/treevnc/TreeRootFinderListener.java	Mon Feb 18 18:46:23 2019 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/treevnc/TreeRootFinderListener.java	Tue Feb 19 15:59:50 2019 +0900
@@ -23,13 +23,14 @@
 	private ViewerInterface vps;
 	private MulticastSocket soc;
 	private SecurityManager securityManager;
+	private boolean isTreeRoot;
 
 	public TreeRootFinderListener(ViewerInterface vncProxyService) {
 		vps = vncProxyService;
+		isTreeRoot = vps.getRfb().isTreeManager();
 	}
 
 	public TreeRootFinderListener(ViewerInterface vncProxyService, ReceiverTask receiverTask) {
-		vps = vncProxyService;
 		this.receiverTask = receiverTask;
 	}
 
@@ -64,7 +65,7 @@
 				String hostname = recvPacket.getAddress().getHostAddress();
 		        byte[] reply = recvPacket.getData();
 				int len = recvPacket.getLength();
-				if (len == 12 && (reply[0] & 0xff) == TreeCommand.FIND_ROOT.cmd) {
+				if (isTreeRoot && len == 12 && (reply[0] & 0xff) == TreeCommand.FIND_ROOT.cmd) {
 					int port = reply[8];
 					port = port * 256 + reply[9];
 					port = port * 256 + reply[10];
@@ -72,12 +73,10 @@
 
 					TreeVncProtocol t = new TreeVncProtocol(hostname, port);
 					t.findRootReply(vps.getRfb().getAcceptPort());
-				} else {
-					if (receiverTask != null) {
-						receiverTask.setReader(new Reader(new ByteArrayInputStream(reply)));
-						if (receiverTask.getMessageId() == FRAMEBUFFER_UPDATE) {
-							receiverTask.framebufferUpdateMessage();
-						}
+				} else if (receiverTask != null) {
+					receiverTask.setReader(new Reader(new ByteArrayInputStream(reply)));
+					if (receiverTask.getMessageId() == FRAMEBUFFER_UPDATE) {
+						receiverTask.framebufferUpdateMessage();
 					}
 				}
 			}