Skip to content

feat(mstsgu): add unprotected RPC call framing - #1829

Open
Marc-André Moreau (mamoreau-devolutions) wants to merge 3 commits into
masterfrom
copilot/rpch-bind-call-codecs
Open

feat(mstsgu): add unprotected RPC call framing#1829
Marc-André Moreau (mamoreau-devolutions) wants to merge 3 commits into
masterfrom
copilot/rpch-bind-call-codecs

Conversation

@mamoreau-devolutions

Copy link
Copy Markdown
Contributor

Add unprotected bind negotiation and request fragmentation.
Use context-aware response and fault decoding with existing reassembly.
Keep authentication, signing, and TsProxy payloads out of this layer.

Add unprotected bind negotiation and request fragmentation.
Use context-aware response and fault decoding with existing reassembly.
Keep authentication, signing, and TsProxy payloads out of this layer.
Copilot AI balanced review requested due to automatic review settings August 29, 2026 00:33
@github-actions github-actions Bot added maintainer-required Maintainer review or intervention is required risk/unknown Risk could not be determined automatically; needs maintainer-level scrutiny size/XL Size: up to 1299 counted lines and 49 files; exceeds L in either measure labels Aug 29, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds unauthenticated DCE/RPC bind negotiation, request fragmentation, and negotiated-context response decoding to MSTSGU framing.

Changes:

  • Adds bind ACK/NAK codecs and presentation-context types.
  • Fragments unprotected requests using negotiated limits.
  • Adds context-aware response/fault decoding and tests.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
crates/ironrdp-mstsgu/src/rpc.rs Implements RPC negotiation and framing.
crates/ironrdp-mstsgu/tests/rpc_pdu.rs Tests new wire codecs.
crates/ironrdp-mstsgu/Cargo.toml Marks uuid as public.

Comment thread crates/ironrdp-mstsgu/src/rpc.rs Outdated
Comment thread crates/ironrdp-mstsgu/src/rpc.rs
Comment thread crates/ironrdp-mstsgu/tests/rpc_pdu.rs Outdated
Preserve expected presentation contexts in mismatch errors and clarify bind_nak length diagnostics.

Cover directional bind_ack fragment maximum negotiation.
Use the daemon output-channel wrapper so the tests exercise the\nsame must-deliver event semantics as production and compile against\nconsume_output's receiver type.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

maintainer-required Maintainer review or intervention is required risk/unknown Risk could not be determined automatically; needs maintainer-level scrutiny size/XL Size: up to 1299 counted lines and 49 files; exceeds L in either measure

Development

Successfully merging this pull request may close these issues.

2 participants