FreeRDP/client/X11
Pascal Nowack 7fce527cff client/X11: Fix IO errors during server to client file transfer
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.
2023-04-17 08:33:53 +02:00
..
cli Updated RDP state machine 2022-11-11 11:51:27 +01:00
resource implemented floatbar for x11 2018-09-18 21:25:51 +02:00
.gitignore Add an environment variables section to the man 2016-06-21 15:28:38 +02:00
CMakeLists.txt [client,x11] wrap XChangeProperty 2023-03-07 07:51:52 +01:00
generate_argument_docbook.c Renamed global argument struct 2021-10-14 13:04:59 +02:00
ModuleOptions.cmake freerdp: remove vendor-specific options from build system, add automatic ways of including external clients/servers 2013-09-03 20:37:04 -04:00
xf_channels.c Unify encomsp request control code 2022-09-13 09:22:41 +02:00
xf_channels.h Cleaned up PubSub 2022-01-19 09:24:57 +01:00
xf_client.c [client,x11] enable XSync with debug builds 2023-03-07 07:51:52 +01:00
xf_client.h [core,cache] make protocol caches private 2023-02-27 17:31:52 +01:00
xf_cliprdr.c client/X11: Fix IO errors during server to client file transfer 2023-04-17 08:33:53 +02:00
xf_cliprdr.h client/X11: Relieve CLIPRDR filename restriction when possible 2022-07-07 07:45:26 +00:00
xf_disp.c Send resize on window state change 2022-09-22 13:48:24 +02:00
xf_disp.h X11 XEvent disp refactored to use const arguments 2020-03-04 10:38:41 +01:00
xf_event.c [client,x11] export x11_event_string 2023-02-28 09:47:54 +01:00
xf_event.h [client,x11] export x11_event_string 2023-02-28 09:47:54 +01:00
xf_floatbar.c Fixed #8296: Assert floatbar->handle and not xfc->window 2022-10-12 21:44:27 +02:00
xf_floatbar.h Fixed #8269: Ignore mouse/input events during floatbar events 2022-10-07 11:26:56 +02:00
xf_gdi.c [client,x11] fix /gdi:hw drawing. 2023-02-14 09:30:45 +01:00
xf_gdi.h Fixed use of reserved keywords for include guards. 2017-07-20 09:35:41 +02:00
xf_gfx.c [logging] remove __FUNCTION__ from actual message 2023-01-25 16:26:39 +01:00
xf_gfx.h Reformatted to new style 2019-11-07 10:53:54 +01:00
xf_graphics.c [logging] remove __FUNCTION__ from actual message 2023-01-25 16:26:39 +01:00
xf_graphics.h Update scaled pointer on FocusIn 2022-07-04 14:30:49 +02:00
xf_input.c [logging] remove __FUNCTION__ from actual message 2023-01-25 16:26:39 +01:00
xf_input.h X11 XEvent refactored input 2020-03-04 10:38:41 +01:00
xf_keyboard.c [client,x11] fix rail checks 2023-01-10 11:49:02 +01:00
xf_keyboard.h Fixed xinput and x11 event priority 2022-02-22 09:44:13 +01:00
xf_monitor.c [xfreerdp] fix sending monitor layout PDU 2022-11-22 15:30:31 +01:00
xf_monitor.h Unify struct definitions (#7633) 2022-02-14 14:59:22 +01:00
xf_rail.c [client,x11] wrap XChangeProperty 2023-03-07 07:51:52 +01:00
xf_rail.h [x11,rail] cleaned up rail drawing code 2022-12-09 12:30:14 +01:00
xf_tsmf.c Fixed various compiler warnings 2022-12-09 15:58:26 +01:00
xf_tsmf.h Fixed use of reserved keywords for include guards. 2017-07-20 09:35:41 +02:00
xf_utils.c [client,x11] fix variable shadow 2023-03-07 07:51:52 +01:00
xf_utils.h [client,x11] add Safe_XGetAtomName 2023-03-07 07:51:52 +01:00
xf_video.c Refactored color.h 2022-04-28 08:40:47 +02:00
xf_video.h Reformatted to new style 2019-11-07 10:53:54 +01:00
xf_window.c [client,x11] wrap XGetWindowProperty 2023-03-07 07:51:52 +01:00
xf_window.h [rail] Added window update from surface 2022-11-11 06:42:45 +01:00
xfreerdp-channels.1.xml Removed placeholder for channel documentation until it is available. 2013-08-06 12:25:38 +02:00
xfreerdp-envvar.1.xml Fix issues in wlog man page 2016-12-01 15:36:31 +01:00
xfreerdp-examples.1.xml extend /size to allow width or height percentages (#4146) 2017-09-25 09:35:49 +02:00
xfreerdp.1.xml.in Add an environment variables section to the man 2016-06-21 15:28:38 +02:00
xfreerdp.h [client,x11] fix /gdi:hw drawing. 2023-02-14 09:30:45 +01:00