-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(rdpdr): DR_CORE_SERVER_CLIENTID_CONFIRM
and DR_CORE_DEVICELIST_ANNOUNCE
#193
Conversation
…need to iterate on how to pass in the desired device_list
…eHeader> Unfortunately these structs rely on taking ownership of the underlying data when it's used. This would work very nicely/efficiently, except under normal circumstances ironrdp-client connects and then reconnects during a session, which means that in the second run (the one that the user actually interacts with) the data is gone, and empty lists are sent for both of these values. In the next commit I will fix this by changing take() to take_clone().
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking quite good to me.
Small request: can you add your PDU structures to the pdu_decode
fuzzing oracle?
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you, looks good to me!
Coverage Report 🤖 ⚙️Past: New: Diff: -1.95% [this comment will be updated automatically] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
This is very surprising by the way. Currently ironrdp-client is reconnecting from scratch and the Rdpdr channel is thus constructed from scratch as well, meaning |
@CBenoit you're correct, I was misinterpreting the logs. What I'm seeing on that commit is that we're going through the RDPDR initialization sequence twice in a single connection:
On the second time I'm sending back the empty I'm not seeing this same behavior in Teleport. It may be being caused by the fact that we announce the smartcard capability but then currently don't handle one of the smartcard commands the server sends to us. I will continue development and then revisit whether this solves itself. |
Oh okay, I see. Sounds good to me! |
Adds handling for
DR_CORE_SERVER_CLIENTID_CONFIRM
andDR_CORE_DEVICELIST_ANNOUNCE
/DR_CORE_DEVICELIST_ANNOUNCE_REQ
, the next steps in the rdpdr initialization sequence.