Преглед изворни кода

rfb.js: wait for SecurityResult failure reason bytes.

Yet another weird VNC server behavior: sending a failure and length
before the reason message. To calculated the length, the reason string
is already available, why not just send everything as one packet. Oh
well.
Joel Martin пре 15 година
родитељ
комит
aa78706983
1 измењених фајлова са 5 додато и 0 уклоњено
  1. 5 0
      include/rfb.js

+ 5 - 0
include/rfb.js

@@ -797,6 +797,11 @@ init_msg = function() {
             case 1:  // failed
             case 1:  // failed
                 if (rfb_version >= 3.8) {
                 if (rfb_version >= 3.8) {
                     reason_len = rQshift32();
                     reason_len = rQshift32();
+                    if (rQlen() < reason_len) {
+                        Util.Debug("   waiting for SecurityResult reason bytes");
+                        rQi -= 8; // Unshift the status and length
+                        return;
+                    }
                     reason = rQshiftStr(reason_len);
                     reason = rQshiftStr(reason_len);
                     updateState('failed', reason);
                     updateState('failed', reason);
                 } else {
                 } else {