Skip to content

docs(daemon): tcpdump audit of pull-direction filter wire (#1697)#3503

Merged
oferchen merged 2 commits into
masterfrom
feat/tcpdump-filter-pull-docs-1697
May 1, 2026
Merged

docs(daemon): tcpdump audit of pull-direction filter wire (#1697)#3503
oferchen merged 2 commits into
masterfrom
feat/tcpdump-filter-pull-docs-1697

Conversation

@oferchen
Copy link
Copy Markdown
Owner

@oferchen oferchen commented May 1, 2026

Summary

  • Add docs/audits/tcpdump-daemon-filter-pull.md to document, with citations to both upstream rsync 3.4.1 (clientserver.c:rsync_module, exclude.c:send_filter_list/send_rules) and oc-rsync sources (crates/protocol/src/filters/wire.rs, crates/transfer/src/receiver/transfer.rs, crates/daemon/src/daemon/sections/module_access/helpers.rs:build_daemon_filter_rules), that daemon-configured filter rules are never transmitted on the wire during a pull.
  • Provide a hands-on tcpdump reproduction recipe (oc-rsyncd.conf snippet, client command, tcp port filter expression, decoded bytes for the 4-byte LE filter-list zero terminator) so operators can verify the property locally.
  • Flag a comment discrepancy in tools/ci/known_failures.conf:81 (rsync 3.0.9 actually advertises PROTOCOL_VERSION 30, not 28) for future cleanup; this audit does not modify it.

Closes #1697.

Test plan

  • Docs-only change; no code, tests, or CI scripts touched.
  • CI labeler picks up docs(daemon): prefix and applies the documentation label.
  • Verified all cited oc-rsync source paths and line numbers exist on master at the time of writing.

oferchen added 2 commits May 1, 2026 11:25
Document that daemon-side filter rules (filter/exclude/include
directives in oc-rsyncd.conf) are never transmitted on the wire during
a pull, in both upstream rsync 3.4.1 and oc-rsync. Cite upstream
clientserver.c:874-893 (rsync_module loads daemon_filter_list) and
exclude.c:1589/1645/1658/1661 (send_rules walks &filter_list, never
&daemon_filter_list). Cross-reference oc-rsync sources at
crates/protocol/src/filters/wire.rs, crates/transfer/src/receiver/transfer.rs,
and crates/daemon/src/daemon/sections/module_access/helpers.rs. Provide
an operator-facing tcpdump reproduction recipe with decoded bytes for
the 4-byte LE filter-list zero terminator. Note an unrelated comment
discrepancy in tools/ci/known_failures.conf (rsync 3.0.9 advertises
PROTOCOL_VERSION 30, not 28) for future cleanup.
@oferchen oferchen merged commit c837ab2 into master May 1, 2026
4 checks passed
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label May 1, 2026
@oferchen oferchen deleted the feat/tcpdump-filter-pull-docs-1697 branch May 1, 2026 21:08
oferchen added a commit that referenced this pull request May 5, 2026
)

Document that daemon-side filter rules (filter/exclude/include
directives in oc-rsyncd.conf) are never transmitted on the wire during
a pull, in both upstream rsync 3.4.1 and oc-rsync. Cite upstream
clientserver.c:874-893 (rsync_module loads daemon_filter_list) and
exclude.c:1589/1645/1658/1661 (send_rules walks &filter_list, never
&daemon_filter_list). Cross-reference oc-rsync sources at
crates/protocol/src/filters/wire.rs, crates/transfer/src/receiver/transfer.rs,
and crates/daemon/src/daemon/sections/module_access/helpers.rs. Provide
an operator-facing tcpdump reproduction recipe with decoded bytes for
the 4-byte LE filter-list zero terminator. Note an unrelated comment
discrepancy in tools/ci/known_failures.conf (rsync 3.0.9 advertises
PROTOCOL_VERSION 30, not 28) for future cleanup.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant