Commit 1eab5b6
Refuse to bind a device that exposes no interfaces
`bind` accepted a VIA Labs 2109:8887 and reported that no driver or process
held it. Every transfer then failed with "Interface 0 not found", because
the device has no interfaces to open: macOS had never configured it, so no
interface nodes exist in the registry. Its only child there was the user
client of a browser driving it over WebUSB.
The classifier could not tell the two cases apart. "No drivers attached to
any interface" and "no interfaces at all" both reached it as an empty list,
and both came back unbound. It now distinguishes them, and a device with
nothing to open is refused with an explanation naming the likely cause,
rather than accepted and left to fail on first use.
Found by ./Scripts/verify-hardware.sh, which picks the first bindable
non-hub device and had been choosing this one — so the failure was the first
thing the script reported on this machine, and it said nothing about the
build it was meant to be validating.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017rmyikdjWveP99ZUCDLY891 parent 88da2fe commit 1eab5b6
3 files changed
Lines changed: 55 additions & 1 deletion
File tree
- Sources
- USBIPDCLI
- USBIPDCore/Device
- Tests/USBIPDCoreTests/Device
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
239 | 239 | | |
240 | 240 | | |
241 | 241 | | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
242 | 253 | | |
243 | 254 | | |
244 | 255 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
23 | 32 | | |
24 | 33 | | |
25 | 34 | | |
| |||
33 | 42 | | |
34 | 43 | | |
35 | 44 | | |
36 | | - | |
| 45 | + | |
37 | 46 | | |
38 | 47 | | |
39 | 48 | | |
| |||
182 | 191 | | |
183 | 192 | | |
184 | 193 | | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
185 | 199 | | |
186 | 200 | | |
187 | 201 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
118 | 147 | | |
0 commit comments