When receiving a file list, xfreerdp3 rebuilds the content of the FUSE filesystem. Since fetching uri-lists can happen during a paste action too, xfreerdp3 caches the content of the last fetched mime type. However, uri-lists exists in different variations, e.g. nautilus uses a different mime type, than gnome-terminal does. Furthermore, FormatLists can also contain other formats in addition to file lists. Fetching those contents during a paste operation leads to IO errors in the paste operation. In order to fix those errors, cache every mimetype in two hash tables: One for the raw (unconverted) data, and one for the converted data. When a content request is received, xfreerdp3 can with the already cached converted data, directly serve the data. If the content is not available as cached data, but its source data was already fetched, use that source data to create the converted data. Then serve the converted data. Only if no cached converted data or cached raw data is available, issue a new FormatDataRequest.
FreeRDP: A Remote Desktop Protocol Implementation
FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Enjoy the freedom of using your software wherever you want, the way you want it, in a world where interoperability can finally liberate your computing experience.
Resources
Project website: https://www.freerdp.com/
Issue tracker: https://github.com/FreeRDP/FreeRDP/issues
Sources: https://github.com/FreeRDP/FreeRDP/
Downloads: https://pub.freerdp.com/releases/
Wiki: https://github.com/FreeRDP/FreeRDP/wiki
API documentation: https://pub.freerdp.com/api/
Security policy: https://github.com/FreeRDP/FreeRDP/security/policy
Matrix room : #FreeRDP:matrix.org (main) XMPP channel: #FreeRDP#matrix.org@matrix.org (bridged) IRC channel : #freerdp @ irc.oftc.net (bridged) Mailing list: https://lists.sourceforge.net/lists/listinfo/freerdp-devel
Microsoft Open Specifications
Information regarding the Microsoft Open Specifications can be found at: https://www.microsoft.com/openspecifications/
A list of reference documentation is maintained here: https://github.com/FreeRDP/FreeRDP/wiki/Reference-Documentation
Compilation
Instructions on how to get started compiling FreeRDP can be found on the wiki: https://github.com/FreeRDP/FreeRDP/wiki/Compilation