Commit Graph

3922 Commits

Author SHA1 Message Date
Michael Jumper
3b6173f7bf GUACAMOLE-377: Work around libssh2 usage of strlen() on key data (otherwise encumbering testing of terminal emulator refactor). 2024-09-27 23:32:38 -07:00
Michael Jumper
1f0a36513c GUACAMOLE-377: Migrate terminal emulator to guac_display. 2024-09-27 23:32:38 -07:00
Michael Jumper
28687cb811 GUACAMOLE-377: Use FreeRDP's built-in GDI handling of bitmap cache.
With FreeRDP's GDI being used for ther other aspects of RDP drawing,
using our own implementation of bitmap caching causes the FreeRDP's GDI
to become out-of-sync with Guacamole's representation, producing
graphical artifacts. We can't simply monkey-patch the GDI, as the
functions used are internal and not part of the public FreeRDP API.

There are likely other possible approaches, like manually updating
FreeRDP's GDI surface in addition to Guacamole's surface, but this may
not be worth the effort given that bitmap caching is not commonly used
by modern RDP servers.
2024-09-27 23:32:38 -07:00
Michael Jumper
d99c5c0b37 GUACAMOLE-377: Replace RDP settings string (rather than reuse storage of unknown size). 2024-09-27 23:32:38 -07:00
Michael Jumper
3f88d3eb24 GUACAMOLE-377: Migrate RDP to guac_display. 2024-09-27 23:32:38 -07:00
Michael Jumper
b030ced3ea GUACAMOLE-377: Group all guac_display documentation together under a shared Doxygen topic. 2024-09-27 23:32:38 -07:00
Michael Jumper
d644722422 GUACAMOLE-377: Migrate VNC support to guac_display API. 2024-09-27 23:32:38 -07:00
Michael Jumper
63ecfd8102 GUACAMOLE-377: Do not use threaded WebP encoder given that guac_display will already make use of a worker thread pool. 2024-09-27 23:32:38 -07:00
Michael Jumper
c994b2e925 GUACAMOLE-377: Use 2 worker threads per available processor. 2024-09-27 23:32:38 -07:00
Michael Jumper
4f3fccd798 GUACAMOLE-377: Add ability to "hint" that a drawing operation copied data from another layer. 2024-09-27 23:32:38 -07:00
Michael Jumper
15e400e0e1 GUACAMOLE-377: Ensure all layers supporting transparency are properly cleared before receiving data that also supports transparency (including WebP). 2024-09-27 23:32:38 -07:00
Michael Jumper
335d5e24a4 GUACAMOLE-377: Updates to cursor must occur within the boundary of their relevant frame (before "sync"). 2024-09-27 23:32:38 -07:00
Michael Jumper
692400c067 GUACAMOLE-377: Flush an automatic frame for mouse changes only if there are no other graphical changes pending. 2024-09-27 23:32:38 -07:00
Michael Jumper
8afbeaece6 GUACAMOLE-377: Do not render frames while users are joining. 2024-09-27 23:32:38 -07:00
Michael Jumper
e396ed57fb GUACAMOLE-377: Migrate guac_mem_*() assertions to GUAC_ASSERT(). 2024-09-27 23:32:38 -07:00
Michael Jumper
442b33eda4 GUACAMOLE-377: Ensure regions outside last frame bounds are considered dirty. 2024-09-27 23:32:38 -07:00
Michael Jumper
f898ead93f GUACAMOLE-377: Clarify logic around opaque layers. 2024-09-27 23:32:38 -07:00
Michael Jumper
619eb2e578 GUACAMOLE-377: Correct logic and lock order around deferred frame flushing (caused deadlock). 2024-09-27 23:32:38 -07:00
Michael Jumper
b965c4dd24 GUACAMOLE-377: Do NOT acquire the ops lock before any frame lock. 2024-09-27 23:32:38 -07:00
Michael Jumper
58140721ea GUACAMOLE-377: Update layer list head upon layer removal only if non-empty. 2024-09-27 23:32:38 -07:00
Michael Jumper
028fb58d17 GUACAMOLE-377: Tighten dirty rects down to the individual pixel, rather than whole 64-pixel lines. 2024-09-27 23:32:38 -07:00
Michael Jumper
104006c6e2 GUACAMOLE-377: Establish public guac_display API for efficient rendering via Guacamole protocol. 2024-09-27 23:32:38 -07:00
Virtually Nick
c5702d1d4e
GUACAMOLE-1196: Merge read VNC dimensions directly from the client, not the screen. 2024-09-12 14:35:59 -04:00
James Muehlner
2452db99ab GUACAMOLE-1196: Read VNC dimensions directly from the client, not the screen. 2024-09-11 22:07:38 +00:00
Virtually Nick
bd830f605e
GUACAMOLE-1196: Merge fix compile issues with older VNC client versions where screen isn't defined. 2024-09-11 06:08:57 -04:00
corentin-soriano
dc028cd892
GUACAMOLE-1196: Fix compile issues with older VNC client versions where screen isn't defined. 2024-09-11 10:36:36 +02:00
James Muehlner
08326a3afe
GUACAMOLE-1026: Merge use of LoadChannels callback method to load plugins with FreeRDP3. 2024-09-09 10:11:10 -07:00
Alex Leitner
dfc7d035aa
GUACAMOLE-1026: Use LoadChannels callback method to load plugins with FreeRDP3. 2024-09-09 11:01:31 -04:00
Virtually Nick
33a22da7b9
GUACAMOLE-1196: Merge fix compile issues with older VNC client versions where screen isn't defined. 2024-09-06 21:47:26 -04:00
James Muehlner
4b36ea354c GUACAMOLE-1196: Fix compile issues with older VNC client versions where screen isn't defined. 2024-09-06 23:37:51 +00:00
Mike Jumper
94a9b4b828
GUACAMOLE-1196: Merge correction to VNC resize behavior, adjusting local display only after server confirms. 2024-09-06 10:32:41 -07:00
James Muehlner
9fef5515e5 GUACAMOLE-1196: Resize guacamole display only when VNC screen size is changed by the server. 2024-09-06 17:24:04 +00:00
Virtually Nick
29b98a96e6
GUACAMOLE-1982: Merge fix compile error in rail.c. 2024-09-05 19:05:47 -04:00
Virtually Nick
725aa12b47
GUACAMOLE-1196: Merge fix VNC resizing behavior. 2024-09-05 19:04:26 -04:00
James Muehlner
fe6befc397 GUACAMOLE-1196: Remove uninitialized check from VNC resize routine to enable initial resize.
(cherry picked from commit f33b8f650c4e3ee1ab425079d8382d30a38bd1e4)
2024-09-05 22:37:14 +00:00
James Muehlner
5def98a4aa GUACAMOLE-1196: Fix VNC resizing behavior.
(cherry picked from commit 0cf9d209dca6eb65a1bca2336dc5b2c98ee85048)
2024-09-05 22:37:07 +00:00
James Muehlner
d4c360b014 GUACAMOLE-1982: Fix compile error in rail.c. 2024-09-05 22:34:58 +00:00
Mike Jumper
ac6f03d0b4
GUACAMOLE-600: Merge correction to handling of non-blocking socket for timeout. 2024-08-30 01:37:49 -07:00
Virtually Nick
54fb919ad0 GUACAMOLE-600: Correct handling of non-blocking socket for timeout. 2024-08-29 21:33:52 -04:00
Mike Jumper
ae790945ff
GUACAMOLE-1980: Merge server version bump to 1.6.0. 2024-08-28 23:02:02 -07:00
James Muehlner
dd1ce3a512 GUACAMOLE-1980: Bump server version to 1.6.0. 2024-08-29 00:06:40 +00:00
Mike Jumper
157c38c6a8
GUACAMOLE-1586: Merge exclusion of newline from clipboard if not explicitly part of terminal output. 2024-08-28 10:53:41 -07:00
James Muehlner
49f9644fe3
GUACAMOLE-600: Merge refactor of guac_socket_tcp_connect() to guac_tcp_connect(). 2024-08-28 10:34:10 -07:00
James Muehlner
3029b4caab
GUACAMOLE-1026: Merge corrected FreeRDP configure output. 2024-08-28 10:32:42 -07:00
Michael Jumper
5ec496fbaf GUACAMOLE-600: Refactor guac_socket_tcp_connect() to guac_tcp_connect(), as it does not involve guac_socket. 2024-08-28 10:26:50 -07:00
Michael Jumper
2d05398691 GUACAMOLE-1026: Correct and clean up FreeRDP presence/absence reporting by configure.
Previously, the name of the library would change and there was no output
for the "disabled" case. Here, the library name remains constant while
version notes are included to the side, and the output of "disabled" is
restored.
2024-08-28 10:20:22 -07:00
Mike Jumper
68f1181955
GUACAMOLE-1290: Merge SFTP support for public keys and corresponding SSH correction. 2024-08-27 15:43:09 -07:00
Virtually Nick
5e0ce1db8f GUACAMOLE-1290: Move public key import in SSH connection code. 2024-08-27 05:48:46 -04:00
Virtually Nick
9f6958accf GUACAMOLE-1290: Add public key parameter for SFTP connections in RDP and VNC protocols. 2024-08-27 05:48:45 -04:00
Mike Jumper
902346a855
GUACAMOLE-600: Merge rename of RDP timeout setting to "timeout" (consistent with other protocols). 2024-08-26 23:49:36 -07:00