diff src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java @ 414:3af5f4af2d63

Send data size for checkDelay
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Tue, 24 Nov 2015 02:18:51 +0900
parents 372532ae5f4d
children 5c3635d6ab3c
line wrap: on
line diff
--- a/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java	Thu Nov 19 17:18:23 2015 +0900
+++ b/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java	Tue Nov 24 02:18:51 2015 +0900
@@ -135,7 +135,7 @@
                     reader.mark(20+8+4);
                     getLost(reader); //check seq consistency
                 } else {
-                    reader.mark(20);
+                    reader.mark(20+8);
                 }
 
                 byte messageId = reader.readByte();
@@ -328,11 +328,14 @@
 
                 } else if (rect.getEncodingType() == EncodingType.CHECK_DELAY) {
                     int checkDelaySize = 24;
-                    reader.reset();
-                    rfb.readSendData(checkDelaySize, reader, null, rect);
                     int port = rfb.acceptPort;
                     String address = rfb.getMyAddress();
-                    sendCheckDelayReply(rect.time, port, address);
+                    int dataLen = reader.readInt32();
+                    sendCheckDelayReply(rect.time, port, address, dataLen);
+                    reader.reset();
+                    reader.readBytes(24);
+                    decoder = decoders.getDecoderByType(EncodingType.ZRLEE);
+                    decoder.decode(reader, renderer, rect);  // TreeVNC processing here
                 } else if (rect.getEncodingType() == EncodingType.SOUND) {
                     // SOUNDを受信した時の処理を
                 } else if (rect.getEncodingType() == EncodingType.ERROR_ANNOUNCE) {
@@ -374,8 +377,8 @@
         }
     }
 
-    private void sendCheckDelayReply(long time, int port, String address) throws UnsupportedEncodingException {
-        context.sendMessage(new CheckDelayReply(time, port, address));
+    private void sendCheckDelayReply(long time, int port, String address, int dataLen) throws UnsupportedEncodingException {
+        context.sendMessage(new CheckDelayReply(time, port, address, dataLen));
     }
 
     public synchronized void queueUpdatePixelFormat(PixelFormat pf) {