1. 22 Sep, 2010 1 commit
  2. 20 Sep, 2010 1 commit
    • Joel Martin's avatar
      No local cursor by default due to issues #27, #29. · 31a837d5
      Joel Martin authored
      In Safari, local cursor rendering is corrupt. In firefox 3.6.10, local
      cursor rendering causes a segfault. Probable that the .cur format is
      not 100% compliant (even though it works in Chrome and firefox 3.5 and
      firefox 4.0). So just disable it by default until I can figure out how
      to address the problems.
      31a837d5
  3. 15 Sep, 2010 3 commits
  4. 11 Sep, 2010 4 commits
    • Joel Martin's avatar
      rfb.js: state refactor, add 'disconnect' state. · e3efeb32
      Joel Martin authored
      Add a new state 'disconnect' to reflect that we are not truly
      'disconnected' until we get an onclose event. Add a disconnect timer
      to match.
      
      Handle disconnected cleanup better in updateState(). Anytime we enter
      in a disconnect/disconnected state, make sure all running state is
      cleaned up (WebSocket, timers, canvas).
      e3efeb32
    • Joel Martin's avatar
      proxy: always multiprocess and add --verbose. · cc374cd6
      Joel Martin authored
      Always fork handlers processes. Instead printing traffic when
      single-processing, print traffic if verbose flag given.
      cc374cd6
    • Joel Martin's avatar
      web-socket-js (issue #37): close() when connecting · ac7bdbc2
      Joel Martin authored
      Filed this issue for this bug:
      http://github.com/gimite/web-socket-js/issues/issue/37
      
      Right now the close() call only calls __flash.close() if readyState is OPEN.
      But it should really call close any time that readyState is not CLOSED or
      CLOSING.
      
      The case I ran into is when I want to do the following:
      1. make a test connection
      2. tell the server to setup for a connection
      3. connect again
      
      I call close on the test connection, but since it is ignored when CONNECTING,
      it eventually times out with a error. But by that time I have already issued a
      new connection, it causes the new connection to fail. close() should cancel
      CONNECTING state too.
      ac7bdbc2
    • Joel Martin's avatar
      gimite/web-socket-js issue #35: async onclose. · 071f2818
      Joel Martin authored
      Filed this bug about this issue:
      http://github.com/gimite/web-socket-js/issues#issue/35
      
      To work around the flash "recursive call" problem, WebSocket.as has
      the onclose event disabled in the close() call and the javascript half
      of the close() call does the onclose() call instead. This is fine, but
      it needs to be asynchronous to act more like what happens with
      a normal WebSockets object. The current behavior is that the onclose()
      method is called inline (synchronously) when the close() is called and
      this inconsistency make state handling more difficult.
      071f2818
  5. 10 Sep, 2010 3 commits
    • Joel Martin's avatar
      proxy: do handshake in forked process too. · edc47252
      Joel Martin authored
      edc47252
    • Joel Martin's avatar
      wsproxy: multiprocess capable. · a0315ab1
      Joel Martin authored
      Add -m, --multiprocess option which forks a handler for each
      connection allowing multiple connections to the same target using the
      same proxy instance.
      
      Cleaned up the output of the handler process. Each process' output is
      prefixed with an ordinal value.
      
      Changed both the C and python versions of the proxy.
      a0315ab1
    • Joel Martin's avatar
      Remove record option from C wsproxy. · 465faf19
      Joel Martin authored
      I've decided that debug/develop/extra features will just be in the
      python version of the proxy. The C version (and other versions) will
      just have the core functionality (unless someone wants to support it).
      465faf19
  6. 08 Sep, 2010 5 commits
  7. 07 Sep, 2010 2 commits
  8. 01 Sep, 2010 3 commits
  9. 31 Aug, 2010 2 commits
  10. 30 Aug, 2010 3 commits
  11. 27 Aug, 2010 3 commits
  12. 26 Aug, 2010 2 commits
    • Joel Martin's avatar
      Test both builtin and base64.js functions. · 4ff85f49
      Joel Martin authored
      4ff85f49
    • Joel Martin's avatar
      Indexed receive queue. Up to 2X speedup in Chrome. · 67b4e987
      Joel Martin authored
      Generally, most servers send hextile updates as single updates
      containing many rects. Some servers send hextile updates as many small
      framebuffer updates with a few rects each (such as QEMU). This latter
      cases revealed that shifting off the beginning of the receive queue
      (which happens after each hextile FBU) performs poorly.
      
      This change switches to using an indexed receive queue (instead of
      actually shifting off the array). When the receive queue has grown to
      a certain size, then it is compacted all at once.
      
      The code is not as clean, but this change results in more than 2X
      speedup under Chrome for the pessimal case and 10-20% in firefox.
      67b4e987
  13. 12 Aug, 2010 1 commit
  14. 11 Aug, 2010 1 commit
    • Joel Martin's avatar
      Treat RFB 3.6 as 3.3. · 1a5dd77d
      Joel Martin authored
      Apparently there are versions of UltraVNC that report version 3.6.
      This is not a legal version according to the spec, but we'll just
      force version 3.3 if we receive it. Thanks to Larry Rowe for the info.
      1a5dd77d
  15. 06 Aug, 2010 1 commit
    • Joel Martin's avatar
      Scroll render test and perf speedup. · 4ed717ad
      Joel Martin authored
      Turns out when Windows is running in QEMU and a window scroll happens,
      there are lots of little hextile rects sent. This is slow in noVNC.
      
      - Some recording/playback improvement.
      - Add test harness to drive playback of recordings.
      - By pulling off the rect header in one chunk we get a 3X speedup in
        Chrome and a 20% speedup in firefox (specifically for the scroll
        test).
      - Also, get rid of some noise from creating timers for handle_message.
        Check to make sure there isn't already a pending timer first.
      4ed717ad
  16. 04 Aug, 2010 5 commits