You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(pdu)!: send NetworkAutoDetect over the MCS message channel
NetworkAutoDetect was modeled as a slow-path Share Data PDU
(ShareDataPduType::AutoDetect, a fabricated 0x3B) carried on the I/O
channel. Per [MS-RDPBCGR] 2.2.14.3 / 2.2.14.4 the auto-detect PDUs are
framed by a Basic Security Header (SEC_AUTODETECT_REQ / SEC_AUTODETECT_RSP)
and ride the MCS message channel, so neither mstsc nor xfreerdp answered
the requests.
ironrdp-pdu: add AutoDetectReqPdu / AutoDetectRspPdu, which wrap the
request and response data with the security header (mirroring the
multitransport PDUs). Remove the ShareDataPdu::AutoDetectReq / AutoDetectRsp
variants and the ShareDataPduType::AutoDetect discriminant, which did not
correspond to any real PDUTYPE2.
ironrdp-server: send auto-detect requests and receive responses on the
message channel surfaced by the acceptor, with the new framing.
ironrdp-connector and ironrdp-session: the client now requests the message
channel (Client Message Channel Data), advertises SUPPORT_NET_CHAR_AUTODETECT,
joins the channel, and answers RTT requests on it. The connector handles
connect-time auto-detection (previously a no-op) and the session handles
continuous auto-detection. Resolves the client side of the message-channel
TODO (#140).
Builds on the acceptor message-channel negotiation merged in #1347 (efa5732).
// TODO(#136): support for ClientEarlyCapabilityFlags::SUPPORT_STATUS_INFO_PDU
@@ -743,8 +857,10 @@ fn create_gcc_blocks<'a>(
743
857
// TODO(#139): support for Some(ClientClusterData { flags: RedirectionFlags::REDIRECTION_SUPPORTED, redirection_version: RedirectionVersion::V4, redirected_session_id: 0, }),
744
858
cluster:None,
745
859
monitor:None,
746
-
// TODO(#140): support for Client Message Channel Data (https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/f50e791c-de03-4b25-b17e-e914c9020bc3)
747
-
message_channel:None,
860
+
// Request the MCS message channel, which carries network auto-detect
861
+
// ([MS-RDPBCGR] 2.2.14) and the multitransport / heartbeat PDUs. The
862
+
// server assigns its ID in Server Message Channel Data.
0 commit comments