1. 24 Sep, 2025 4 commits
  2. 23 Sep, 2025 17 commits
    • Stefy Lanza (nextime / spora )'s avatar
      Fix VNC WebSocket 'Invalid frame header' error · 72788b3f
      Stefy Lanza (nextime / spora ) authored
      - Remove WebSocket-level chunking of VNC data (breaks streaming protocol)
      - Send VNC data as complete WebSocket frames instead of chunks
      - Enhance SSL error handling with better retry logic and exponential backoff
      - Make VNC handler resilient to temporary SSL buffer issues
      - Add comprehensive debug logging for WebSocket frame transmission
      - Add client-side debug logging for VNC rectangle processing
      
      Root cause: WebSocket chunking interrupted VNC TightDecoder which expects
      complete compressed data blocks. Client accumulated partial data until
      connection reset with ECONNRESET.
      72788b3f
    • Stefy Lanza (nextime / spora )'s avatar
      Fix WebSocket connection error in VNC · 7183eaa8
      Stefy Lanza (nextime / spora ) authored
      - Remove wsProtocols: ['binary'] setting that was causing reserved bits error
      - WebSocket extension negotiation was failing with 'reserved3 = 1'
      - Use default WebSocket protocol negotiation instead
      7183eaa8
    • Stefy Lanza (nextime / spora )'s avatar
      Fix homepage client layout to show 3 clients per row · cd53f8c1
      Stefy Lanza (nextime / spora ) authored
      - Wrap client cards in Bootstrap row container
      - Each client uses col-md-4 for 3 columns per row on medium+ screens
      - Maintains responsive design for smaller screens
      cd53f8c1
    • Stefy Lanza (nextime / spora )'s avatar
      Fix scrollbars for full-size VNC view · 90881382
      Stefy Lanza (nextime / spora ) authored
      - Allow container to expand with height: auto and max-height: none in full-size mode
      - Set min-width and min-height to fit-content for #noVNC_screen to allow proper canvas sizing
      - Add debugging logs to check canvas and container dimensions after zoom toggle
      - Ensure scrollbars appear when remote desktop is larger than viewport
      90881382
    • Stefy Lanza (nextime / spora )'s avatar
      Add scrollbars to full-size VNC view · ba54ead0
      Stefy Lanza (nextime / spora ) authored
      - Add CSS class .vnc-container.full-size with overflow: auto to show scrollbars
      - Modify toggleZoom() function to toggle the full-size CSS class on the container
      - When zoom button is active (full-size mode), scrollbars appear for navigation
      - Maintains scaled view (no scrollbars) when zoom button is inactive
      ba54ead0
    • Stefy Lanza (nextime / spora )'s avatar
      Add zoom toggle button to VNC window controls · f23ff750
      Stefy Lanza (nextime / spora ) authored
      - Add zoom/scale toggle button in the window titlebar
      - Implement toggle functionality between scaled view (fit to window) and full-size view with scrollbars
      - Add CSS styling for the zoom button with active state
      - Button toggles between search-plus and search-minus icons
      - When active, shows remote desktop at actual size with clipping and scrollbars enabled
      f23ff750
    • Stefy Lanza (nextime / spora )'s avatar
      Debug and fix VNC client display issues · 57ea848a
      Stefy Lanza (nextime / spora ) authored
      - Add comprehensive logging to Display.flip() method for viewport and scaling debugging
      - Fix missing KeyboardUtil object in input/util.js
      - Add backbuffer content verification before and after rectangle processing
      - Enhance WebSocket message logging for frame data debugging
      - Improve error handling for corrupted FramebufferUpdate messages
      - Add data skipping for unsupported encodings to prevent connection stalls
      - Clean up excessive console.log statements for production readiness
      - Verify loading system with cancel button functionality
      57ea848a
    • Stefy Lanza (nextime / spora )'s avatar
      Fix VNC display rendering issue · c377af92
      Stefy Lanza (nextime / spora ) authored
      - Disable viewport clipping to prevent large screens from being hidden
      - Add proper handling of corrupted FramebufferUpdate messages
      - Skip data for unsupported encodings to prevent data accumulation
      - Add comprehensive debugging for message processing flow
      - Fix infinite loop in rectangle processing for corrupted data
      c377af92
    • Stefy Lanza (nextime / spora )'s avatar
      Fix WebSocket masking issue in VNC connections · b6d4fdb0
      Stefy Lanza (nextime / spora ) authored
      - Added retry logic with partial write handling to ws_send_binary_frame()
      - Prevents WebSocket frame corruption during large VNC data transmission
      - Fixes 'server must not mask frames' error in noVNC browser connections
      - ws_send_binary_frame now handles SSL write interruptions properly
      b6d4fdb0
    • Stefy Lanza (nextime / spora )'s avatar
      Add test_vnc_client.c: Minimal VNC client for testing VNC tunneling over wsssht · f141f3ab
      Stefy Lanza (nextime / spora ) authored
      - Implements VNC protocol handshake (version exchange, security negotiation, client init)
      - Uses wsssht --pipe mode for bidirectional communication
      - Includes timeout handling and proper error management
      - Tested successfully with VNC server negotiation
      f141f3ab
    • Stefy Lanza (nextime / spora )'s avatar
      Fix VNC connection dropping immediately after connect · 079f6c9c
      Stefy Lanza (nextime / spora ) authored
      - Replace ws_send_frame with ws_send_binary_frame for VNC WebSocket data
      - This ensures proper binary frame handling for VNC protocol data
      - Fixes immediate disconnection after 'VNC connected' message
      079f6c9c
    • Stefy Lanza (nextime / spora )'s avatar
      Fix VNC connection issue: correct corrupted base64.js file · e4033f9f
      Stefy Lanza (nextime / spora ) authored
      - Fix Base64 object definition in wssshd2/templates/novnc/base64.js
      - Change 'window.{' to 'window.Base64 = {' to properly define global Base64 object
      - This resolves ReferenceError when decoding JPEG rectangles in Tight encoding
      - VNC connections now establish successfully instead of disconnecting immediately
      e4033f9f
    • Stefy Lanza (nextime / spora )'s avatar
      Fix VNC WebSocket connection hanging after initial RFB handshake · c1ba79e1
      Stefy Lanza (nextime / spora ) authored
      - Implement bidirectional pipe communication for VNC sessions
      - Replace single pipe with separate stdin/stdout pipes
      - Fix child process redirection to properly handle both input and output
      - Add enhanced debug logging for VNC data flow
      - Update resource cleanup in vnc_free_session()
      
      This resolves the issue where VNC connections would hang after exchanging
      the first 12 bytes (RFB protocol version strings) because input from
      noVNC WebSocket wasn't reaching the wsssht process.
      c1ba79e1
    • Stefy Lanza (nextime / spora )'s avatar
      Fix critical VNC pipe bug and add debug logging · 8545d971
      Stefy Lanza (nextime / spora ) authored
      - Fix pipe handling in vnc.c: was writing to read end instead of write end
      - Add separate read_fd/write_fd fields to vnc_session_t struct
      - Add debug logging for VNC data exchange in websocket handler
      - Add hex dump logging for VNC pipe communication
      
      This resolves the 'Wrote -1 bytes to pipe' error that was preventing
      VNC connections from working properly.
      8545d971
    • Stefy Lanza (nextime / spora )'s avatar
      Connect wsssht stdin/stdout to VNC WebSocket channel · 79fa8426
      Stefy Lanza (nextime / spora ) authored
      - Add output buffering to vnc_session_t structure
      - Modify read_pipe_output to buffer wsssht stdout
      - Update vnc_get_output to return buffered data
      - Modify websocket_vnc_handler to send output to WebSocket client
      - Enable bidirectional communication for VNC WebSocket connections
      79fa8426
    • Stefy Lanza (nextime / spora )'s avatar
      Enable non-TLS WebSocket connections for noVNC · 5a4dcbd2
      Stefy Lanza (nextime / spora ) authored
      - Remove secure context check in noVNC RFB.js to allow HTTP usage
      - Add --websocket-tls-only configuration option (defaults to true for security)
      - Implement mixed TLS/non-TLS WebSocket server support
      - Add plain WebSocket connection support in protocol layer
      - Fix critical bugs: buffer overflows, race conditions, HTML template issues
      - All changes maintain backward compatibility while enabling HTTP WebSocket usage
      5a4dcbd2
    • Stefy Lanza (nextime / spora )'s avatar
      Fix SyntaxError: Convert pako zlib modules from CommonJS to ES6 · 5fff97e9
      Stefy Lanza (nextime / spora ) authored
      - Fix embed_assets.sh sed regex for CommonJS to ES6 conversion
      - Convert require() calls to import statements in deflate.js
      - Add missing messages.js file for error messages
      - Remove module.exports statements from deflate.js
      - Update all pako zlib files to use ES6 modules
      
      This resolves the 'require is not defined' and 'module is not defined' errors in the browser.
      5fff97e9
  3. 22 Sep, 2025 14 commits
  4. 21 Sep, 2025 5 commits