--specials unconditionally logs "socket not recreated" and returns FILE_SAVE_SKIPPED; create_mode only handles S_IFIFO. Verified mknod(..., S_IFSOCK) succeeds unprivileged, so the "impossible" classification is wrong. RSYNC_COMPAT.md marks --specials as ⛔ (sockets) incorrectly.
--copy-devices is parsed into Config and copied to ScannerOptions but never read; the scanner's scanner_prepare_special ignores it, so the flag has no effect.
Fix: handle S_IFSOCK in the special-node path (keeping EEXIST/EPERM skip behavior); wire copy_devices into the scanner decision (copy device content to a regular file when requested; otherwise skip non-regular entries like rsync by default). Update doc status.
Audit findings (`src/shared/file_receive.c`, `src/client/scanner.c`).
- `--specials` unconditionally logs "socket not recreated" and returns FILE_SAVE_SKIPPED; `create_mode` only handles S_IFIFO. Verified `mknod(..., S_IFSOCK)` succeeds unprivileged, so the "impossible" classification is wrong. RSYNC_COMPAT.md marks `--specials` as ⛔ (sockets) incorrectly.
- `--copy-devices` is parsed into Config and copied to ScannerOptions but never read; the scanner's `scanner_prepare_special` ignores it, so the flag has no effect.
Fix: handle `S_IFSOCK` in the special-node path (keeping EEXIST/EPERM skip behavior); wire `copy_devices` into the scanner decision (copy device content to a regular file when requested; otherwise skip non-regular entries like rsync by default). Update doc status.
Fixed. --specials now recreates S_IFSOCK sockets via mknodat(S_IFSOCK) (unprivileged), keeping EEXIST/EPERM skip semantics; --copy-devices is wired into the scanner so a device is sent as a regular file. --copy-devices remains a documented bounded safe divergence. Closing as completed.
Fixed. `--specials` now recreates `S_IFSOCK` sockets via `mknodat(S_IFSOCK)` (unprivileged), keeping EEXIST/EPERM skip semantics; `--copy-devices` is wired into the scanner so a device is sent as a regular file. `--copy-devices` remains a documented bounded safe divergence. Closing as completed.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Audit findings (
src/shared/file_receive.c,src/client/scanner.c).--specialsunconditionally logs "socket not recreated" and returns FILE_SAVE_SKIPPED;create_modeonly handles S_IFIFO. Verifiedmknod(..., S_IFSOCK)succeeds unprivileged, so the "impossible" classification is wrong. RSYNC_COMPAT.md marks--specialsas ⛔ (sockets) incorrectly.--copy-devicesis parsed into Config and copied to ScannerOptions but never read; the scanner'sscanner_prepare_specialignores it, so the flag has no effect.Fix: handle
S_IFSOCKin the special-node path (keeping EEXIST/EPERM skip behavior); wirecopy_devicesinto the scanner decision (copy device content to a regular file when requested; otherwise skip non-regular entries like rsync by default). Update doc status.Fixed.
--specialsnow recreatesS_IFSOCKsockets viamknodat(S_IFSOCK)(unprivileged), keeping EEXIST/EPERM skip semantics;--copy-devicesis wired into the scanner so a device is sent as a regular file.--copy-devicesremains a documented bounded safe divergence. Closing as completed.