usbip-rs/lib/Cargo.toml
Davíð Steinn Geirsson 015fc393ba fix: forward CLEAR_FEATURE(ENDPOINT_HALT) to real device for host passthrough
When a real USB device stalls an endpoint, the VM sends
CLEAR_FEATURE(ENDPOINT_HALT) to recover. Previously this was a no-op,
leaving the endpoint permanently stalled and causing the guest to hang.

Now the CLEAR_FEATURE handler in device.rs finds the interface that owns
the stalled endpoint and calls clear_halt on its handler. For host
passthrough this forwards to nusb's new Interface::clear_halt; for
simulated devices it remains a no-op.

Fixes YubiKey (and other CCID devices) hanging after endpoint stall
during passthrough.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 15:31:27 +00:00

27 lines
817 B
TOML

[package]
name = "usbip-rs"
version = "0.8.0"
authors = ["Jiajie Chen <c@jia.je>"]
edition = "2024"
license = "MIT"
repository = "https://github.com/jiegec/usbip"
description = "A library to run USB/IP server"
[dependencies]
tokio = { version = "1.22.0", features = ["rt", "net", "io-util", "sync", "time"] }
log = "0.4.17"
num-traits = "0.2.15"
num-derive = "0.4.2"
serde = { version = "1.0", features = ["derive"], optional = true }
nusb = { git = "https://git.dsg.is/dsg/nusb.git", rev = "a45a3e0" }
tokio-util = { version = "0.7", features = ["rt"] }
arbitrary = { version = "1", features = ["derive"], optional = true }
[dev-dependencies]
tokio = { version = "1.22.0", features = ["full"] }
env_logger = "0.11.7"
[features]
default = []
serde = ["dep:serde"]
fuzz = ["dep:arbitrary", "tokio/rt-multi-thread"]