1. 06 Nov, 2010 5 commits
    • Joel Martin's avatar
      canvas.js: workaround WebKit bug, issue #28. · cdb55d26
      Joel Martin authored
      This is WebKit bug https://bugs.webkit.org/show_bug.cgi?id=46319
      
      The workaround is to wrap Canvas render functions with a function that
      sets a flush timer. The flush function sets the right margin and then
      1ms later sets it back. This triggers the canvas to redraw with the
      correct contents.
      
      Two downsides:
      - rendering is slower, but only on the busted versions of webkit.
        Correct and useful is better than fast and useless.
      - There is a barely perceptible jitter of the control buttons because
        the canvas size is changing by one pixel.
      
      To support this functionality, we also have to read out the exact
      webkit version from the user agent in the render engine detection code
      in include/util.js.
      cdb55d26
    • Joel Martin's avatar
      default_controls.js: canvas fail fix. Misc cleanup. · 455e4657
      Joel Martin authored
      - Make sure that canvas exists (i.e. didn't throw an error) before
        trying to call canvas method get_canvas_uri.
      
      - Typos in HTML render engine debug output.
      455e4657
    • Joel Martin's avatar
      Add --key option for separate cert and key file. · 3205a3de
      Joel Martin authored
      If only --cert is specified then continue to assume both certificate
      and key are in the same file (key first).
      3205a3de
    • Joel Martin's avatar
      e70f1d94
    • François Revol's avatar
      wsproxy: Mac OS X build fixes · f61274c8
      François Revol authored
      - pass CFLAGS and LDFLAGS in case one needs to use -m32
      - link to libcrypto for _ERR_print_errors_fp
      - __THROW is non-standard define it to nothing by default
      - use b64_ntop and b64_pton instead of mangled versions, OSX doesn't mangle them in the same way
      - access() takes two arguments!
      Signed-off-by: 's avatarFrançois Revol <revol@free.fr>
      f61274c8
  2. 28 Oct, 2010 4 commits
  3. 24 Oct, 2010 1 commit
  4. 18 Oct, 2010 1 commit
  5. 14 Oct, 2010 2 commits
  6. 10 Oct, 2010 1 commit
  7. 04 Oct, 2010 1 commit
  8. 01 Oct, 2010 1 commit
    • Joel Martin's avatar
      rfb.js: rQwait, cuttext simplification. · 60440cee
      Joel Martin authored
      - rQwait checks the receive queue to see if there is enough data to
        satisfy the following request. If not it returns true (which is
        almost always translated into an immediate return false by the
        caller).
      
      - rQwait is called quite a bit and this generally allows 4 lines to
        become 1 line where it is called.
      
      - rQwait allows simplification of cuttext processing. No global
        tracking needed anymore.
      
      Overall, about 60 lines less code.
      60440cee
  9. 30 Sep, 2010 1 commit
    • Joel Martin's avatar
      include/des.js: trim some fat. · a9995971
      Joel Martin authored
      DES is just used once during authentication and is not performance
      sensitive so we save some space by generating and/or removing some
      lookup tables. Also, shorten some very frequently used variables.
      
      Shaves off about 100 lines.
      a9995971
  10. 29 Sep, 2010 4 commits
  11. 25 Sep, 2010 1 commit
    • Joel Martin's avatar
      Show rect/enc counts, add vnc_perf.html test. · a679a97d
      Joel Martin authored
      - include/rfb.js: Keep track of the number of rects of each encoding
        type and print them out when we close a connection (if 'info'
        logging level).
      
      - tests/vnc_perf.html: first pass at a noVNC based performance
        benchmark.
      
      - utils/wsproxy.py: Fix the output of the record filename.
      a679a97d
  12. 24 Sep, 2010 5 commits
  13. 23 Sep, 2010 4 commits
    • Joel Martin's avatar
      Refactor settings object, add connectTimeout setting. · ff36b127
      Joel Martin authored
      - include/util.js: Add type and desc field to conf_default routine.
        Make comment descriptions of settings into desc parameters that can
        be queried. Also, use set_FOO in conf_default to set or coerce the
        current setting so that we always have the right type for the value.
      
      - include/rfb.js, include/default_config.js: add connectTimeout
        setting to address situations with slow connections that may need
        more than 2 seconds.
      ff36b127
    • Joel Martin's avatar
      rfb.js: wait for SecurityResult failure reason bytes. · aa787069
      Joel Martin authored
      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.
      aa787069
    • Joel Martin's avatar
      Misc cleanup: debug logging, record filename, etc. · 005d9ee9
      Joel Martin authored
      - include/canvas.js: When 'debug' logging, show browser detection
        values.
      - test/canvas.html: Only restore the canvas to it's starting state if
        the logging level is not 'debug'.
      - wsproxy.py: Append the session number to the record filename so that
        multiple sessions don't stomp on each other.
      005d9ee9
    • Joel Martin's avatar
      util.js: detect firefox 4.X correctly. · 8787e49b
      Joel Martin authored
      Update the browser detection code (from mootools) with a fix that
      detects firefox 4.0 correctly.
      8787e49b
  14. 22 Sep, 2010 2 commits
  15. 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
  16. 15 Sep, 2010 3 commits
  17. 11 Sep, 2010 3 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