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