1. 24 Sep, 2025 21 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 2 commits