Revision: 4872
          http://tigervnc.svn.sourceforge.net/tigervnc/?rev=4872&view=rev
Author:   bphinz
Date:     2012-03-19 20:20:24 +0000 (Mon, 19 Mar 2012)
Log Message:
-----------
Fixes handshake failure caused by premature loop break when data is not ready.

Modified Paths:
--------------
    trunk/java/com/tigervnc/rfb/CConnection.java
    trunk/java/com/tigervnc/rfb/ConnParams.java

Modified: trunk/java/com/tigervnc/rfb/CConnection.java
===================================================================
--- trunk/java/com/tigervnc/rfb/CConnection.java        2012-03-18 21:39:04 UTC 
(rev 4871)
+++ trunk/java/com/tigervnc/rfb/CConnection.java        2012-03-19 20:20:24 UTC 
(rev 4872)
@@ -74,12 +74,11 @@
   private void processVersionMsg() 
   {
     vlog.debug("reading protocol version");
-    Boolean done = new Boolean(true);
-    if (!cp.readVersion(is, done)) {
+    if (!cp.readVersion(is)) {
       state_ = RFBSTATE_INVALID;
       throw new Exception("reading version failed: not an RFB server?");
     }
-    if (!done.booleanValue()) return;
+    if (!cp.done) return;
 
     vlog.info("Server supports RFB protocol version "
               +cp.majorVersion+"."+ cp.minorVersion);

Modified: trunk/java/com/tigervnc/rfb/ConnParams.java
===================================================================
--- trunk/java/com/tigervnc/rfb/ConnParams.java 2012-03-18 21:39:04 UTC (rev 
4871)
+++ trunk/java/com/tigervnc/rfb/ConnParams.java 2012-03-19 20:20:24 UTC (rev 
4872)
@@ -43,20 +43,20 @@
     setName("");
   }
 
-  public boolean readVersion(InStream is, Boolean done) 
+  public boolean readVersion(InStream is) 
   {
+    done = false;
     if (verStrPos >= 12) return false;
     verStr = new StringBuilder(13);
-    is.check(12);
-    while (verStrPos < 12) {
+    while (is.checkNoWait(1) && verStrPos < 12) {
       verStr.insert(verStrPos++,(char)is.readU8());
     }
 
     if (verStrPos < 12) {
-      done = Boolean.valueOf(false);
+      done = false;
       return true;
     }
-    done = Boolean.valueOf(true);
+    done = true;
     verStr.insert(12,'0');
     verStrPos = 0;
     if (verStr.toString().matches("RFB \\d{3}\\.\\d{3}\\n0")) {
@@ -181,6 +181,7 @@
       }
     }
   }
+  public boolean done;
   public boolean useCopyRect;
 
   public boolean supportsLocalCursor;

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Tigervnc-commits mailing list
Tigervnc-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tigervnc-commits

Reply via email to