guacamole-server icon indicating copy to clipboard operation
guacamole-server copied to clipboard

GUACAMOLE-522: USB Device Redirection.

Open aleitner opened this issue 4 months ago • 2 comments

This PR implements the server-side protocol support for Web USB device redirection, complementing the client-side PR. This provides the infrastructure for Guacamole protocol plugins (RDP, VNC, etc.) to handle USB device redirection from browser clients.

Data Flow

  1. Server receives usbconnect with device descriptors and interface/endpoint data
  2. Protocol plugin's usbconnect_handler is invoked to establish redirection
  3. usbdata messages flow between client device and server handler
  4. Either side can initiate disconnection via usbdisconnect

New Protocol Instructions

  • Server → Client: Added usbdata and usbdisconnect instructions for sending data to USB devices and requesting disconnection
  • Client → Server: Added handlers for receiving usbconnect, usbdata, and usbdisconnect instructions

Handlers

  • guac_user_usbconnect_handler: Processes USB device connections with full device metadata (vendor/product IDs, interfaces, endpoints)
  • guac_user_usbdata_handler: Handles USB data transfer from the client with USB endpoint and transfer type information.
  • guac_user_usbdisconnect_handler: Manages USB device disconnection events.

aleitner avatar Aug 21 '25 18:08 aleitner

Extremely interested in this PR, what is blocking it, since this is a awesome added feature :D

lokenorlinjohannessen avatar Nov 08 '25 21:11 lokenorlinjohannessen

Extremely interested in this PR, what is blocking it, since this is a awesome added feature :D

Nothing is blocking it - just the time required to review the PR.

necouchman avatar Nov 09 '25 03:11 necouchman