another stage of refactoring
CI / Build NRO (push) Successful in 29s
CI / Format check (push) Successful in 28s
CI / Layering check (push) Successful in 2s
CI / Build NRO (pull_request) Successful in 29s
CI / Format check (pull_request) Successful in 27s
CI / Layering check (pull_request) Successful in 1s

This commit is contained in:
2026-05-12 09:59:43 +03:00
parent 6f8ede035f
commit 49efcde301
45 changed files with 1982 additions and 2664 deletions
+3 -3
View File
@@ -38,7 +38,7 @@ Sender polls in 100 ms slices for up to 3 seconds. Cancel is checked each slice.
|-----------|-------|
| Port | `8080` |
| Direction | sender connects → receiver listens |
| Buffer size | 65 536 bytes (`proto::BUF_SIZE`) |
| Buffer size | 65 536 bytes (`proto::kBufSize`) |
**Connection:**
@@ -64,14 +64,14 @@ Sender polls in 100 ms slices for up to 3 seconds. Cancel is checked each slice.
Files are sent sequentially. The stream ends with a sentinel frame:
```
filename_len == 0 (proto::EOF_SENTINEL)
filename_len == 0 (proto::kEofSentinel)
```
No `filename` or `file_size` field follows the sentinel.
**Constraints:**
- `filename_len > proto::MAX_FILENAME` (4 096) is treated as a protocol error; the receiver aborts.
- `filename_len > proto::kMaxFilename` (4 096) is treated as a protocol error; the receiver aborts.
- Filenames are full paths as produced by `io::backup` (e.g. `/switch/NXST/<title>/<user>/...`).
- On the receiver, the username path component is rewritten to match the local user's nickname before writing to disk.