parity: implement --stderr=client client-message channel (wire) #313

Closed
opened 2026-09-23 02:10:48 +02:00 by TapTap · 1 comment
Owner

rsync's --stderr=client routes the client's diagnostics to the peer's stderr. FastSync has no client-message channel and maps --no-msgs2stderr to errors-only.

Work: add a bounded STATUS_CLIENT_MSG (client->server string) plus a server handler that writes it to the server's stderr; add LOG_STDERR_CLIENT; accept --stderr=client. Needs a PROTOCOL_VERSION bump + golden-frame update.

Closes the --msgs2stderr/--stderr=MODE ⚠️/❌ rows. See src/shared/log.[ch], src/shared/protocol.h, src/server/receiver.c, src/client/client_cli.c:431.

rsync's `--stderr=client` routes the client's diagnostics to the peer's stderr. FastSync has no client-message channel and maps `--no-msgs2stderr` to errors-only. **Work:** add a bounded `STATUS_CLIENT_MSG` (client->server string) plus a server handler that writes it to the server's stderr; add `LOG_STDERR_CLIENT`; accept `--stderr=client`. Needs a `PROTOCOL_VERSION` bump + golden-frame update. Closes the `--msgs2stderr`/`--stderr=MODE` ⚠️/❌ rows. See `src/shared/log.[ch]`, `src/shared/protocol.h`, `src/server/receiver.c`, `src/client/client_cli.c:431`.
TapTap added the enhancement label 2026-09-23 02:10:48 +02:00
Author
Owner

Fixed in PR #327 (protocol 2.30.0). New bounded STATUS_CLIENT_MSG (client->server) dispatched in all receiver loops; --stderr=client accepted and --no-msgs2stderr maps to it; client diagnostics are queued (mutex-guarded, bounded, _Atomic activation) and flushed before the terminal handshake; peer text is sanitized (output_escape) and routed through the server's log destination/level. Residual: one-directional (client->server only), documented ⚠️.

Fixed in PR #327 (protocol 2.30.0). New bounded `STATUS_CLIENT_MSG` (client->server) dispatched in all receiver loops; `--stderr=client` accepted and `--no-msgs2stderr` maps to it; client diagnostics are queued (mutex-guarded, bounded, `_Atomic` activation) and flushed before the terminal handshake; peer text is sanitized (`output_escape`) and routed through the server's log destination/level. Residual: one-directional (client->server only), documented ⚠️.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: TapTap/FastSync#313