1. 18 Sep, 2025 31 commits
    • Stefy Lanza (nextime / spora )'s avatar
      Commit latest changes · 8b1388b8
      Stefy Lanza (nextime / spora ) authored
      8b1388b8
    • Stefy Lanza (nextime / spora )'s avatar
      Suppress tunnel_data debug messages in wsssht --debug mode · 08729ae7
      Stefy Lanza (nextime / spora ) authored
      - Suppress verbose tunnel_data debug messages in main tunnel loop
      - Suppress tunnel_data debug messages in thread function
      - Suppress tunnel_data debug messages in daemon mode
      - Suppress WebSocket 'Received message' and 'Processing message' debug messages for tunnel_data
      - Maintain functionality while reducing debug log verbosity
      - Preserve other debug messages (tunnel_response, tunnel_close, etc.)
      08729ae7
    • Stefy Lanza (nextime / spora )'s avatar
      Complete implementation of extensive debug logging for control channel messages · 0bbca2da
      Stefy Lanza (nextime / spora ) authored
      - wssshd: Added full JSON logging for all received/sent control messages when --debug enabled
      - wssshc: Verified existing control message logging
      - wsssht: Suppressed verbose data channel messages in debug mode
      - Fixed wsssht daemon mode for multiple sequential connections
      - Fixed wsssht script mode data forwarding and JSON output
      - Increased thread cleanup timeout to prevent race conditions
      - All components compile and work correctly
      0bbca2da
    • Stefy Lanza (nextime / spora )'s avatar
      Add extensive debug logging for control channel messages in wssshd and wssshc · d81db287
      Stefy Lanza (nextime / spora ) authored
      - wssshd (websocket.py): Log full JSON content of all received and sent control channel messages when --debug enabled
      - wssshc: Verified existing debug logging for control messages
      - Fixed wsssht script mode data forwarding for tunnel_response messages
      - Suppressed data channel message output in script mode for clean JSON protocol
      - Fixed wsssht daemon mode to properly handle multiple connections and wait indefinitely
      d81db287
    • Stefy Lanza (nextime / spora )'s avatar
      Add extensive debug logging for control channel messages and enhance script mode · 4614c081
      Stefy Lanza (nextime / spora ) authored
      - Add debug logging for all control channel messages in wssshd and wssshc
        when --debug flag is enabled, showing full JSON content of received and sent messages
      - Fix data forwarding issue in wsssht script mode
      - Suppress data channel message output in wsssht script mode for cleaner output
      - Enhance script_started message in wsssht script mode to include tunnel_host, tunnel_port, and service fields
      - Remove obsolete test_bridge_interactive.sh file
      
      Control channel messages now logged include: register, registered, registration_error,
      tunnel_request, tunnel_ack, tunnel_close, tunnel_error for both server and client.
      4614c081
    • Stefy Lanza (nextime / spora )'s avatar
      Fix bridge mode to use SSL for WebSocket communication · 9ae67412
      Stefy Lanza (nextime / spora ) authored
      - Bridge mode was incorrectly using raw socket operations over SSL connection
      - Updated to use SSL_read/SSL_write for all WebSocket communication
      - Fixed send_websocket_message to use send_websocket_frame with SSL
      - Fixed pong frame sending to use SSL
      - Fixed select() and FD_ISSET to monitor correct socket
      
      This resolves the 'send_error' and connection closure issues in bridge mode tests.
      9ae67412
    • Stefy Lanza (nextime / spora )'s avatar
      Add extensive debug logging for control channel messages · 84781de4
      Stefy Lanza (nextime / spora ) authored
      - wssshd: Log full content of all received and sent control messages when --debug is enabled
      - wssshc: Already logs control messages, registration message logging enhanced
      - wsssht: Fixed memory corruption issue with config struct allocations
      
      Control channel messages include: register, registered, registration_error,
      tunnel_request, tunnel_ack, tunnel_error, tunnel_close, tunnel_data, tunnel_response
      84781de4
    • Stefy Lanza (nextime / spora )'s avatar
      Add tunnel control channel message handling to bridge mode · 2ea94e22
      Stefy Lanza (nextime / spora ) authored
      - Enhanced bridge mode to handle incoming tunnel control messages from WebSocket
      - Added JSON output for tunnel_data, tunnel_response, tunnel_close messages
      - Added WebSocket connection status messages (websocket_close, websocket_connection_closed)
      - Updated test scripts to include tunnel control channel message testing
      - Updated documentation with comprehensive examples of control channel messages
      - Added new testing scenario for tunnel control channel verification
      
      Bridge mode now properly forwards all tunnel control channel messages as JSON
      through stdout, allowing external applications to monitor tunnel state and
      server communications in real-time.
      2ea94e22
    • Stefy Lanza (nextime / spora )'s avatar
      Add comprehensive bridge mode testing tools · 549ffa56
      Stefy Lanza (nextime / spora ) authored
      - test_bridge_mode.sh: Automated test script for bridge mode functionality
      - test_bridge_interactive.sh: Interactive testing tool with manual JSON command input
      - BRIDGE_MODE_TESTING.md: Complete testing guide with examples and integration patterns
      
      Features:
      - Automated and interactive testing modes
      - JSON command examples and validation
      - Real-time response monitoring
      - Error handling and process management
      - Integration examples in Python and Node.js
      - Troubleshooting guide and best practices
      - Colored output and user-friendly interface
      
      These tools provide comprehensive testing capabilities for the new bridge mode,
      allowing developers to easily test and integrate with the JSON stdin/stdout interface.
      549ffa56
    • Stefy Lanza (nextime / spora )'s avatar
      Correct documentation for bridge mode tunnel channel handling · e26cd67f
      Stefy Lanza (nextime / spora ) authored
      - Fixed documentation to correctly state that in bridge mode:
        - Tunnel control channel messages are communicated through stdin/stdout (JSON protocol)
        - Tunnel data channel messages remain handled by wsssht (normal forwarding)
      - Updated README.md, DOCUMENTATION.md, CHANGELOG.md, and TODO.md
      - The implementation was already correct, just the documentation was backwards
      e26cd67f
    • Stefy Lanza (nextime / spora )'s avatar
      Clarify tunnel data channel handling in bridge mode · fb7f4986
      Stefy Lanza (nextime / spora ) authored
      - Updated documentation to clarify that in ALL modes, wsssht handles tunnel control channel messages
      - Clarified that in bridge mode specifically, tunnel data channel messages are NOT handled by wsssht
      - Instead, raw tunnel data is communicated through stdin/stdout for external processing
      - Updated README.md, DOCUMENTATION.md, CHANGELOG.md, and TODO.md with this clarification
      - This ensures proper understanding of bridge mode's data handling architecture
      fb7f4986
    • Stefy Lanza (nextime / spora )'s avatar
      Update documentation for new operating modes · b624365b
      Stefy Lanza (nextime / spora ) authored
      - Updated README.md with comprehensive operating mode descriptions
      - Added detailed usage examples for all modes (interactive, silent, bridge, script, daemon)
      - Updated CHANGELOG.md with version 1.6.0 featuring new operating modes
      - Updated TODO.md with completed items and new feature descriptions
      - Updated DOCUMENTATION.md with operating mode details and API documentation
      - Enhanced man pages with new command-line options
      - Updated configuration examples to include new [wssht] section options
      - Comprehensive documentation coverage for all new features
      b624365b
    • Stefy Lanza (nextime / spora )'s avatar
      Implement bridge and script modes for wsssht · 5e5d32e5
      Stefy Lanza (nextime / spora ) authored
      - Added run_bridge_mode() function with JSON stdin/stdout interface
      - Added run_script_mode() function with JSON protocol for scripting
      - Bridge mode: JSON communication between stdin/stdout and WebSocket
      - Script mode: JSON status updates, command processing, and monitoring
      - Both modes provide structured JSON output for programmatic use
      - Fixed compilation warnings and ensured clean build
      - All operating modes now fully implemented
      5e5d32e5
    • Stefy Lanza (nextime / spora )'s avatar
      Implement daemon mode for lazy tunnel initialization · c9b8a6bb
      Stefy Lanza (nextime / spora ) authored
      - Added run_daemon_mode() function for lazy tunnel establishment
      - Daemon mode waits for first connection attempt before establishing tunnel
      - Reduces resource usage by not connecting until actually needed
      - Maintains all existing functionality after tunnel is established
      - Fixed compilation errors and ensured clean build
      - Updated mode handling to support daemon mode
      c9b8a6bb
    • Stefy Lanza (nextime / spora )'s avatar
      Remove WebSocket handshake debug messages unless --debug is enabled · bd114443
      Stefy Lanza (nextime / spora ) authored
      - Modified websocket_handshake() function to accept debug parameter
      - Updated all debug messages in websocket_handshake to only print when debug=1
      - Updated all callers of websocket_handshake() to pass debug flag
      - Fixed compilation warnings and ensured clean build
      - WebSocket handshake messages now only appear with --debug flag
      bd114443
    • Stefy Lanza (nextime / spora )'s avatar
      Fix compilation warnings in wsssht.c · 480285cd
      Stefy Lanza (nextime / spora ) authored
      - Fixed unused parameter warnings in run_bridge_mode and run_script_mode functions
      - Added parameter usage in debug output to eliminate compiler warnings
      - Compilation now clean with no warnings or errors
      480285cd
    • Stefy Lanza (nextime / spora )'s avatar
      Add --config option and update config files · 4a64994a
      Stefy Lanza (nextime / spora ) authored
      - Added --config FILE option to specify custom config file path
      - Removed [wssht] section from wsssh.conf.example (legacy)
      - Created separate wsssht.conf.example with wssht-specific options
      - Updated man page with new --config option and mode options
      - Updated usage message to include all new options
      - Config file validation: errors if specified file doesn't exist
      4a64994a
    • Stefy Lanza (nextime / spora )'s avatar
      Fix memory corruption in parse_connection_string · 2ed32275
      Stefy Lanza (nextime / spora ) authored
      - Fixed 'free(): invalid pointer' error when using service prefix format
      - Issue was caused by modifying the original allocated string and then trying to free a pointer to the middle of it
      - Added proper pointer tracking to ensure correct memory deallocation
      2ed32275
    • Stefy Lanza (nextime / spora )'s avatar
      Fix connection string precedence issue · 952e5687
      Stefy Lanza (nextime / spora ) authored
      - Connection string values now properly override config file values
      - Fixed issue where 'wsssht zeiss' wasn't working due to incorrect precedence logic
      - Command line options still take highest precedence, then connection string, then config file
      952e5687
    • Stefy Lanza (nextime / spora )'s avatar
      Add flexible connection string support to wsssht · 397200c8
      Stefy Lanza (nextime / spora ) authored
      - Support connection string format: [service://]clientid[@wssshd-host][:wssshd-port]
      - Command line options take precedence over connection string values
      - Update usage message and man page with new syntax
      - Add comprehensive documentation for connection string format
      - Maintain backward compatibility with existing option-based usage
      397200c8
    • Stefy Lanza (nextime / spora )'s avatar
      Fix wsssht argument parsing issue · c0a6998c
      Stefy Lanza (nextime / spora ) authored
      - Remove leftover logic for handling positional arguments in parse_args()
      - Since wsssht no longer accepts user@host arguments, remove the non-option argument handling
      - Remove unused parse_hostname() and parse_target_args() functions
      - Fix issue where valid options were triggering --help output
      c0a6998c
    • Stefy Lanza (nextime / spora )'s avatar
      Complete wsssht.conf.example with all configuration options · 60dc9f73
      Stefy Lanza (nextime / spora ) authored
      - Add tunnel-port option to wsssht.conf.example
      - Update man page configuration example to include all options
      - Reorder options logically in both files
      - Include comprehensive comments explaining each option
      60dc9f73
    • Stefy Lanza (nextime / spora )'s avatar
      Fix wsssht config file name from wssht.conf to wsssht.conf · 64ee57da
      Stefy Lanza (nextime / spora ) authored
      - Update all config file references from 'wssht' to 'wsssht'
      - Rename wssht.conf.example to wsssht.conf.example
      - Update man page to reflect correct config file names
      - Fix config reading calls to use 'wsssht' instead of 'wssht'
      64ee57da
    • Stefy Lanza (nextime / spora )'s avatar
      Update --tunnel option description in wsssht help · 00dbcc6a
      Stefy Lanza (nextime / spora ) authored
      - Change 'Transport types' to 'Transport' in --tunnel option description
      - Add 'or websocket' to the description for clarity
      - Update both usage message in wsssht.c and man page wsssht.1
      00dbcc6a
    • Stefy Lanza (nextime / spora )'s avatar
      Reorder wsssht --help options for better organization · 067dc0e5
      Stefy Lanza (nextime / spora ) authored
      - Move --wssshd-port option to appear right after --wssshd-host
      - Update both usage message in wsssht.c and man page wsssht.1
      - Maintain logical grouping of related options
      067dc0e5
    • Stefy Lanza (nextime / spora )'s avatar
      Add system-wide config support for wsssht with proper precedence · e4f83534
      Stefy Lanza (nextime / spora ) authored
      - Update read_config_value_from_file() to support config precedence:
        1. ~/.config/wsssh/wssht.conf (user config)
        2. /etc/wsssht.conf (system config)
      - Update man page to document config file precedence order
      - Command line options still have highest priority
      e4f83534
    • Stefy Lanza (nextime / spora )'s avatar
      Refactor wsssht: remove user@domain parsing, add --clientid and --wssshd-port options · 28dccf5b
      Stefy Lanza (nextime / spora ) authored
      - Remove parsing of user@domain format from wsssht
      - Add --clientid option for specifying client ID
      - Add --wssshd-port option (replacing -p/--port)
      - Update wssshd-host default to mbetter.nexlab.net
      - Add client_id field to wsssh_config_t struct
      - Update config reading to include clientid and wssshd-port
      - Update wssht.conf.example with new options
      - Update man page wsssht.1 with new options and examples
      - Ensure --wssshd-host is required if not in config
      - Update all usage messages and documentation
      28dccf5b
    • Stefy Lanza (nextime / spora )'s avatar
      Add --tunnel-host option to wsssht and change default timeout to 5 seconds · 42365291
      Stefy Lanza (nextime / spora ) authored
      - Add --tunnel-host option to specify local IP address for tunnel binding
      - Change default timeout from 30 to 5 seconds for wsssht
      - Update help text, man page, and config file to reflect changes
      - Update setup_tunnel function to accept tunnel_host parameter
      - Update socket binding to use specified tunnel_host or default to 127.0.0.1
      42365291
    • Stefy Lanza (nextime / spora )'s avatar
      feat: Add wsssht to Debian package · 9a91cb2a
      Stefy Lanza (nextime / spora ) authored
      - Update debian/control: Include wsssht in package description
      - Update debian/changelog: Add version 1.5.0 with wsssht and transport features
      - Update debian/rules: Install wssht.conf.example configuration file
      - Package now includes all four tools: wssshc, wsssh, wsscp, wsssht
      - Maintains backward compatibility with existing installations
      9a91cb2a
    • Stefy Lanza (nextime / spora )'s avatar
      feat: Add wsssht - WebSocket SSH Tunnel tool · 3ee9fd4a
      Stefy Lanza (nextime / spora ) authored
      - Create wsssht.c: Stripped-down tunnel setup tool (like wsssh --dev-tunnel)
      - Add separate wssht.conf configuration file support
      - Implement read_config_value_from_file() for custom config files
      - Create wssht.conf.example with tunnel configuration options
      - Update wsssht.1 man page with separate config file documentation
      - Add wsssht to build system (configure.sh, Makefile)
      - Test successful compilation and functionality
      
      wsssht provides manual tunnel setup without auto-executing SSH/SCP,
      displaying connection information for telnet, nc, or any TCP client.
      3ee9fd4a
    • Stefy Lanza (nextime / spora )'s avatar
      feat: Implement peer-to-peer tunneling architecture with transport selection · cc27f590
      Stefy Lanza (nextime / spora ) authored
      - Add --tunnel, --tunnel-control, --service options to wsssh and wsscp
      - Implement transport definitions with is_relay property and weight-based selection
      - Add WebSocket transport with is_relay=true as primary transport
      - Update server-side tunnel handling for new transport attributes
      - Enhance configuration system with new tunneling options
      - Update all man pages with comprehensive tunneling documentation
      - Fix PyInstaller template loading for frozen executables
      - Add transport list expansion for 'any' option functionality
      - Implement connection retry logic with weight-based prioritization
      - Update CHANGELOG.md, TODO.md, README.md, and DOCUMENTATION.md
      cc27f590
  2. 17 Sep, 2025 9 commits
    • Stefy Lanza (nextime / spora )'s avatar
      feat: Add peer-to-peer tunneling architecture with transport selection · 25f2f3cb
      Stefy Lanza (nextime / spora ) authored
      - Add --tunnel, --tunnel-control, --service options to wsssh and wsscp
      - Implement transport definitions with is_relay property and weight-based selection
      - Add WebSocket transport with is_relay=true as primary implementation
      - Update server-side tunnel handling with new transport attributes
      - Enhance configuration system with tunneling options
      - Fix critical transport list expansion for 'any' option
      - Update all man pages with comprehensive tunneling documentation
      - Add new config files wsssh.conf.example and wsscp.conf.example
      - Update CHANGELOG.md, README.md, and TODO.md with new features
      - Maintain backward compatibility with existing functionality
      25f2f3cb
    • Stefy Lanza (nextime / spora )'s avatar
      Implement comprehensive tunnel status tracking and IP autodetection · ecd74f26
      Stefy Lanza (nextime / spora ) authored
      - Add IP autodetection function in wssshlib.c that detects local IP excluding loopback
      - Create comprehensive Tunnel class in wsssd/tunnel.py with all required attributes:
        * client_id, tunnel_id, status, protocol, tunnel_type
        * dst_public_ip, dst_public_port, dst_private_ip, dst_private_port
        * src_public_ip, src_private_ip
      - Update WebSocket handling to use Tunnel objects throughout lifecycle
      - Add IP detection utilities for public/private IPs
      - Maintain original tunnel binding behavior (127.0.0.1)
      - Update server shutdown process for proper tunnel cleanup
      - Test implementation with virtual environment
      ecd74f26
    • Stefy Lanza (nextime / spora )'s avatar
      Implement multi-core CPU utilization for wssshc · e7dbe71f
      Stefy Lanza (nextime / spora ) authored
      - Added CPU affinity management to distribute tunnel threads across available CPU cores
      - Implemented round-robin CPU core assignment for optimal load distribution
      - Added _GNU_SOURCE define to enable CPU affinity functions
      - Updated configure.sh to include -D_GNU_SOURCE in CFLAGS for proper compilation
      - Enhanced parallel processing capabilities for multiple concurrent tunnels
      - Updated CHANGELOG.md and TODO.md with multi-core optimization details
      e7dbe71f
    • Stefy Lanza (nextime / spora )'s avatar
      f53f0220
    • Stefy Lanza (nextime / spora )'s avatar
      Optimize CPU usage during file transfers · fe459171
      Stefy Lanza (nextime / spora ) authored
      - Increased select() timeout from 50ms to 200ms in tunnel forwarding threads
      - Reduced polling frequency by 75% to minimize CPU overhead during data transfers
      - Significantly improved efficiency for bulk file transfers while maintaining responsiveness
      - Updated CHANGELOG.md and TODO.md with performance optimization details
      fe459171
    • Stefy Lanza (nextime / spora )'s avatar
      Consolidate C implementation documentation · 12544297
      Stefy Lanza (nextime / spora ) authored
      Merged duplicate 'C Implementation' sections in README.md into a single cohesive 'wsssh tools (C Implementation)' section. Since Python implementations were removed, the C tools are now the primary (and only) implementations available.
      12544297
    • Stefy Lanza (nextime / spora )'s avatar
      Fix documentation: remove 'Alternative' reference for C implementation · c258537c
      Stefy Lanza (nextime / spora ) authored
      Since Python implementations were removed, C implementations are now the primary (and only) implementations. Updated README.md to remove the '(Alternative)' designation.
      c258537c
    • Stefy Lanza (nextime / spora )'s avatar
      Fix PyInstaller build issues and asyncio warnings · 4b9d65f3
      Stefy Lanza (nextime / spora ) authored
      - Fix missing websockets import in wsssd/server.py causing 'name websockets is not defined' error
      - Resolve asyncio runtime warnings by properly awaiting cancelled tasks in shutdown handling
      - Fix global variable sharing issue in frozen application by passing server password as parameter to websocket handler
      - Improve WebSocket handler signature compatibility with functools.partial for proper function binding
      - Update CHANGELOG.md and TODO.md with version 1.4.9 changes
      4b9d65f3
    • Stefy Lanza (nextime / spora )'s avatar
      Fix segmentation fault by not freeing shared SSL in remove_tunnel · 6516a011
      Stefy Lanza (nextime / spora ) authored
      - Prevent SSL double-free when individual tunnels are closed
      - SSL contexts are managed only at connection level
      - Fixes crashes when server closes tunnels
      6516a011