xrdp
xrdp copied to clipboard
Chrome RDP fails to connect
I am trying to connect to xrdp from my chromebook and it is failing on the connection. It looks like something is happening near this part:
Sat Dec 17 16:37:51 2016 - RdpManager::ReceiveDemandActivePdu()
Sat Dec 17 16:37:51 2016 - DemandActivePdu::Parse Unknown Capabiliy Set;
Sat Dec 17 16:37:51 2016 - Did not receive DemandActivePdu
Sat Dec 17 16:37:51 2016 - ChromerdpInstance::RdpManager_Status() status -1
Sat Dec 17 16:37:51 2016 - ChromerdpInstance::RdpManager_Status Failed
Sat Dec 17 16:37:51 2016 - ChromerdpInstance::UserModal(UserInputModal* modal, bool sendMsgPopUpClose)
Sat Dec 17 16:37:51 2016 - ChromerdpInstance::CloseConnection()
Sat Dec 17 16:37:51 2016 - RdpManager::CloseConnection()
Sat Dec 17 16:37:51 2016 - Closing socket connection...
I have attached the full log:
I can confirm that mstsc and freerdp work properly.
ChromeRDP is another client that doesn't support drawing orders (like MS RDP client for Android).
That means xrdp should be built using ./configure --enable-painter.
Additionally, I found the following problems which causes ChromeRDP client drop the connection:
- xrdp doesn't advertise TS_VIRTUALCHANNEL_CAPABILITYSET which considered a mandatory cap set.
- we advertise some non-Microsoft cap set, ChromeRDP drops the connection when getting unknown caps.
- we send an incorrect TS_FP_UPDATE_SYNCHRONIZE pdu, I can push a fix.
Regarding 1+2: In my opinion its more of an ChromeRDP issue, since the server is not assumed to support those caps by protocol. Also, any other clients is fine with that - client should assume its unsupported / use default values.
Iv'e pushed a branch which contains the necessary changes for ChromeRDP to connect; Feel free to test it. (https://github.com/speidy/xrdp/commits/chromerdp)
I think 2 is defensible and I can submit a bug report to them. Since 1is considered a mandatory cap set I think that they will not fix that one.
Number 3 is fixed now. pushed the fix to devel a96c91b38e68e189e6861dfdf3df5852881ad470
Is this still an issue?