mirror of
https://github.com/SagerNet/sing-box.git
synced 2026-08-31 13:51:29 +00:00
The universal proxy platform
https://sing-box.sagernet.org/
Windows export now reports the real USB link speed, probed from the parent hub (IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX and _V2 for SuperSpeedPlus), so SuperSpeed devices route to the correct root-hub speed domain instead of advertising speed=0. - protocol: pin DeviceInfoTruncated/DeviceInterface wire sizes with two-sided compile-time assertions so a struct change fails the build instead of silently mis-bounding the reader - server: bound inbound connections with a handshake read deadline and a per-iteration idle deadline on the control loop, plus write deadlines on control writes; clear the deadline before the conn becomes a data session - server: serialize import reservation under reconcileAccess so a reserve cannot interleave a reconcile pass that would release a busy device - data: validate CMD_SUBMIT iso descriptor offset/length against the transfer buffer before forwarding to a platform engine - darwin: make darwinUSBHostDevice.Close idempotent via sync.Once to avoid a double close/free under concurrent shutdown - windows: guard windowsExport.device with a mutex and hand the claimed handle to a single closer |
||
|---|---|---|
| .github | ||
| adapter | ||
| clients | ||
| cmd | ||
| common | ||
| constant | ||
| daemon | ||
| dns | ||
| docs | ||
| experimental | ||
| include | ||
| log | ||
| option | ||
| protocol | ||
| release | ||
| route | ||
| service | ||
| test | ||
| transport | ||
| .fpm_openwrt | ||
| .fpm_pacman | ||
| .fpm_systemd | ||
| .gitignore | ||
| .gitmodules | ||
| .golangci.yml | ||
| box.go | ||
| debug.go | ||
| debug_http.go | ||
| debug_stub.go | ||
| debug_unix.go | ||
| Dockerfile | ||
| Dockerfile.binary | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| Makefile | ||
| mkdocs.yml | ||
| README.md | ||
sing-box
The universal proxy platform.
Documentation
License
Copyright (C) 2022 by nekohasekai <contact-sagernet@sekai.icu>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
In addition, no derivative work may use the name or imply association
with this application without prior consent.