Skip to content

feat(cliprdr): add clipboard data locking methods#1064

Merged
Benoît Cortier (CBenoit) merged 2 commits intoDevolutions:masterfrom
glamberson:pr1-clipboard-lock-unlock
Jan 13, 2026
Merged

feat(cliprdr): add clipboard data locking methods#1064
Benoît Cortier (CBenoit) merged 2 commits intoDevolutions:masterfrom
glamberson:pr1-clipboard-lock-unlock

Conversation

@glamberson
Copy link
Copy Markdown
Contributor

Per MS-RDPECLIP sections 2.2.4.6 and 2.2.4.7, the Local Clipboard
Owner may lock the Shared Clipboard Owner's clipboard data before requesting
file contents to ensure data stability during multi-request transfers.

This enables server implementations to safely request file data from clients
when handling clipboard paste operations.

Changes

  • SendLockClipboard / SendUnlockClipboard message variants in ClipboardMessage
  • lock_clipboard() / unlock_clipboard() methods on Cliprdr<R>
  • Server handler wiring

Dependencies

Depends on #1063 (reqwest feature fix) to compile.

The server uses `ironrdp_tokio::reqwest::ReqwestNetworkClient` in
accept_credssp but the reqwest feature was not enabled, causing
compilation to fail.

Fixes Devolutions#1062
Per MS-RDPECLIP sections 2.2.4.6 and 2.2.4.7, the Local Clipboard Owner
may lock the Shared Clipboard Owner's clipboard data before requesting
file contents. This ensures data stability during multi-request file
transfers.

Adds lock_clipboard() and unlock_clipboard() methods with corresponding
ClipboardMessage variants for server integration.
Copy link
Copy Markdown
Member

@CBenoit Benoît Cortier (CBenoit) left a comment

Choose a reason for hiding this comment

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

LGTM!

@CBenoit Benoît Cortier (CBenoit) merged commit 58c3df8 into Devolutions:master Jan 13, 2026
10 checks passed
@glamberson Greg Lamberson (glamberson) deleted the pr1-clipboard-lock-unlock branch March 17, 2026 12:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants